因此,当从 pyspark 运行时,我会输入(不指定任何上下文):
df_openings_latest = sqlContext.sql('select * from experian_int_openings_latest_orc')
.. 它工作正常。
但是,当我从 spark-submit
运行我的脚本时,就像
spark-submit script.py
我把下面的
from pyspark.sql import SQLContext
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName('inc_dd_openings')
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
df_openings_latest = sqlContext.sql('select * from experian_int_openings_latest_orc')
但这给了我一个错误
pyspark.sql.utils.AnalysisException: u’Table not found: experian_int_openings_latest_orc;’
所以它看不到我的桌子。
我究竟做错了什么?请帮忙
PS Spark 版本为 1.6,在 Amazon EMR 上运行
原文由 Denys 发布,翻译遵循 CC BY-SA 4.0 许可协议
火花 2.x
如果在没有 启用 Hive 支持 的情况下创建了
SparkSession
,Spark 2.x 中可能会出现相同的问题。火花 1.x
这很简单。当您使用 PySpark shell 并且 Spark 已构建为支持 Hive 时,默认
SQLContext
实现(可用作sqlContext
)是HiveContext
在您的独立应用程序中,您使用不提供 Hive 功能的普通
SQLContext
。假设其余配置正确,只需替换:
和