关于 sql:hive 上下文无法识别 pyspark 中的临时表 – AnalysisException: ‘Table not found’

hive context doesn't recognize temp table in pyspark - AnalysisException: 'Table not found'

我正在使用以本地模式运行的 pyspark (1.6.1)。
我有一个来自 csv 文件的数据框,我需要添加 dense_rank() 列。
我知道 sqlContext 不支持窗口功能,但 HiveContext 支持。

1
2
3
4
5
hiveContext = HiveContext(sc)
df.registerTempTable("visits")
visit_number = hiveContext.sql("select store_number,"
                              "dense_rank() over(partition by store_number order by visit_date) visit_number"
                              "from visits")

我收到错误消息:
AnalysisException: u'Table not found: 访问;

警告后:WARN ObjectStore: Failed to get database default, return NoSuchObjectException

在阅读了之前的问题后,我尝试将 conf/hive_defaults.xml 中的 ConnectionURL 更改为 hive 目录的确切位置,但没有成功。

有人知道这个问题吗?

谢谢!


结果:
删除 SQLContext 并仅使用 HiveContext,一切正常。


你应该在 registerTempTable

之前创建 DataFrame

1
MyDataFrame <- READ.df(sqlContext, CsvPath, SOURCE ="somthing.csv", header ="true")

然后:

1
registerTempTable(MyDataFrame,"visits")