Bluemix Spark 中的 HiveContext

HiveContext in Bluemix Spark

在 bluemix spark 中我想使用 HiveContext

HqlContext = HiveContext(sc)
//some code
 df = HqlContext.read.parquet("swift://notebook.spark/file.parquet")

我收到以下错误

Py4JJavaError: An error occurred while calling o45.parquet. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

默认情况下,HiveContext 不包含在 Bluemix Spark 产品中。

要将其包含在您的笔记本中,您应该能够使用 %AddJar 从可公开访问的服务器加载它,例如:

%AddJar http://my.server.com/jars/spark-hive_2.10-1.5.2.jar

您也可以将其指向 Maven 的存储库 link:

%AddJar http://repo1.maven.org/maven2/org/apache/spark/spark-hive_2.10/1.5.2/spark-hive_2.10-1.5.2.jar
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

这可以为我启用 Hive 上下文。

现在,值得注意的是 Maven 上的最新可用版本可能与 Bluemix 上的 Spark 运行 当前版本不一致,所以我的建议是检查 Bluemix 上 Spark 的版本使用:

sc.version

然后将这个 JAR 的版本与那个版本的 Spark 匹配。