如何将Dataframe发送到配置单元表?
我知道如果我有一个sparkDataframe,我可以使用
df.registerTempTable("table_name")
sqlContext.sql("create table table_name2 as select * from table_name")
但是,当我尝试使用pandasDataframe来注册可清空时,出现以下错误:
AttributeError: 'DataFrame' object has no attribute 'registerTempTable'
有没有一种方法可以让我使用pandasDataframe来注册一个temp表,或者将它转换成sparkDataframe,然后使用它注册一个temp表,这样我就可以将它发送回hive。
3条答案
按热度按时间a9wyjsp71#
我把我的Pandasdf换成了临时桌
1) 将pandasDataframe转换为sparkDataframe:
2) 确保数据已正确迁移
3) 将sparkDataframe转换为临时表以进行查询。
干杯。。
wf82jlnq2#
我猜你是想利用Pandas
df
而不是spark的df。pandas dataframe没有这样的方法
registerTempTable
.你可以尝试从Pandasdf创建spark df。
更新:
我已经在cloudera下测试了它(安装了anaconda包,其中包括pandas模块)。
确保您已设置
PYSPARK_PYTHON
到所有spark workers上的anaconda python安装(或另一个包含pandas模块的安装)(通常在:spark-conf/spark-env.sh
)以下是我的测试结果:
3z6pesqy3#
首先,您需要将pandasDataframe转换为sparkDataframe:
然后你可以在记忆中创造一个诱人的东西:
现在,您可以使用配置单元ql将数据保存到配置单元中:
注意than:the hive_context 一定要保持一致!