[英]how to query Hive from Spark on CDH 5.4.4
我正在运行CDH 5.4.4(捆绑了Spark 1.3.0),并想将Hive表读入Spark数据帧。
查看文档,它建议我们可以执行以下操作:
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
results = sqlContext.sql("SHOW TABLES").collect()
...假设Spark是在设置-Phive
和-Phive-thriftserver
标志-Phive-thriftserver
。
我不确定Cloudera的构建是否设置了这些标志。
当我运行代码段时,它返回以下错误:
15/07/10 16:54:10 WARN HiveMetaStore: Retrying creating default database after error: Error creating transactional connection factory
javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
我有两个问题:
hive
和hive-thriftserver
标志? 更新
这几乎可以工作:
我创建了从$SPARK_HOME/conf/
到hive-site.xml
的符号链接,即
ln -s /etc/hive/conf.cloudera.hive/hive-site.xml $SPARK_HOME/conf/hive-site.xml
然后,我重新启动了Spark服务,并能够访问Hive。 不幸的是,符号链接在重启后无法幸免。
从hive conf复制hive-site.xml到spark conf.dist,如下所示,
sudo cp /etc/impala/conf.dist/hive-site.xml /etc/spark/conf.dist/
现在尝试您能够从pyspark读取配置单元数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.