我使用的是在本地模式下运行的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: U‘’Table found: visits;
出现warning: WARN ObjectStore:无法获取数据库默认值,返回NoSuchObjectException后
在阅读了前面的问题之后,我尝试将conf/hivedefaults.xml中的ConnectionURL更改为hive目录的确切位置,但没有成功。
有人在这个问题上吗?
谢谢!
发布于 2016-04-07 19:58:50
结果:删除SQLContext并只使用HiveContext,一切工作正常。
发布于 2016-04-07 04:17:23
您应该在registerTempTable之前创建DataFrame
MyDataFrame <- read.df(sqlContext, CsvPath, source = "somthing.csv", header = "true")在那之后:
registerTempTable(MyDataFrame, "visits")https://stackoverflow.com/questions/36461119
复制相似问题