python-2.7 - pyspark中的 Pandas 数据框到 hive

标签 python-2.7 pandas hive pyspark

如何将 Pandas 数据框发送到 hive 表?

我知道如果我有一个 spark 数据框,我可以使用它将它注册到一个临时表中

df.registerTempTable("table_name")
sqlContext.sql("create table table_name2 as select * from table_name")

但是当我尝试使用 pandas dataFrame 来 registerTempTable 时,我收到以下错误:
AttributeError: 'DataFrame' object has no attribute 'registerTempTable'

有没有办法让我使用 Pandas 数据帧来注册临时表或将其转换为 Spark 数据帧,然后使用它注册临时表,以便我可以将其发送回配置单元。

最佳答案

我猜你正在尝试使用 pandas df而不是 Spark's DF .

Pandas DataFrame 没有 registerTempTable 这样的方法.

您可以尝试从 pandas DF 创建 Spark DF。

更新:

我已经在 Cloudera 下对其进行了测试(安装了 Anaconda parcel ,其中包括 Pandas 模块)。

确保您已设置 PYSPARK_PYTHON到所有 Spark 工作人员(通常位于:spark-conf/spark-env.sh)上的 anaconda python 安装(或另一个包含 Pandas 模块的安装)

这是我的测试结果:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.randint(0,100,size=(10, 3)), columns=list('ABC'))
>>> sdf = sqlContext.createDataFrame(df)
>>> sdf.show()
+---+---+---+
|  A|  B|  C|
+---+---+---+
| 98| 33| 75|
| 91| 57| 80|
| 20| 87| 85|
| 20| 61| 37|
| 96| 64| 60|
| 79| 45| 82|
| 82| 16| 22|
| 77| 34| 65|
| 74| 18| 17|
| 71| 57| 60|
+---+---+---+

>>> sdf.printSchema()
root
 |-- A: long (nullable = true)
 |-- B: long (nullable = true)
 |-- C: long (nullable = true)

关于python-2.7 - pyspark中的 Pandas 数据框到 hive ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36919825/

相关文章:

python - 维护重复元素和非重复元素之间的关系

python - Pandas:如何在稀疏表中选择具有非零值的列

python - 如何比较两个数据框,并添加两者之一没有的行和列

java - Spark Hive 和 Datanucleus

hadoop - hive :我如何加入一个有日期间隔的条件?

python - 如何在 python 中 append print 函数的值

python - 如何在 Scapy 中正确修改数据包数据?

python - 类型错误 : mat data type = 0 is not supported

python - 导入错误 : No module named pxssh

hadoop - 从 hive 表插入多个文件不起作用?