我正在使用以本地模式运行的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目录的确切位置,但没有成功。
有关此问题的任何人吗?
谢谢!
答案 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