the*_*wla 7 hive python-2.7 pandas pyspark
如何将熊猫数据框发送到配置单元表?
我知道我是否有spark数据框,可以使用以下命令将其注册到临时表中
df.registerTempTable("table_name")
sqlContext.sql("create table table_name2 as select * from table_name")
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用pandas dataFrame注册registerTempTable时,出现以下错误:
AttributeError: 'DataFrame' object has no attribute 'registerTempTable'
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使用pandas dataFrame注册临时表或将其转换为spark dataFrame,然后使用它注册临时表,以便我可以将其发送回配置单元。
我猜你是在尝试使用 Pandasdf而不是Spark 的 DF。
Pandas DataFrame 没有这样的方法 registerTempTable.
您可以尝试从 Pandas DF 创建 Spark DF。
更新:
我已经在 Cloudera 下测试过(安装了Anaconda 包裹,其中包括 Pandas 模块)。
确保您已PYSPARK_PYTHON在所有 Spark 工作线程(通常在:spark-conf/spark-env.sh))
这是我的测试结果:
>>> 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)
Run Code Online (Sandbox Code Playgroud)