hive上下文无法识别pyspark中的临时表 - AnalysisException:'表未找到'

时间:2016-04-06 19:55:07

标签: sql apache-spark hive pyspark

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

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:你找不到:访问;

警告后:WARN ObjectStore:无法获取数据库缺省值,返回NoSuchObjectException

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

有关此问题的任何人吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你应该在registerTempTable之前创建DataFrame

c = 1
#do my stuff
while c < 20:
    if c == 1:
        logging.debug(line.split(PID_ANDROID)[c])
        c = + 2
    else:
        logging.debug('Moving on to a refresh')
    # You do not incremennt c
    # c += 2 should go here to increment every time

之后:

for i in xrange(1,20,2):
  # do your processing