python將pandas數據轉爲spark的dataframe格式保存到hive中

使用python在調用集羣跑數據之後,數據以pandas計算,輸出的結果保存到hive數據庫中,最老套的辦法。(注意:這裏的spark版本是1.6)
步驟:

from pyspark.sql import HiveContext
from pyspark import SparkConf, SparkContext
from pyspark.sql import functions

conf = SparkConf().setAppName("test")
conf.set("spark.sql.execution.arrow.enabled", "true")
conf.set("spark.driver,memory", "6G")  # 設置最大緩存爲6G

sc = SparkContext(conf = conf)
hiveContext = HiveContext(sc)

1、將pandas的dataframe數據轉化爲spark 的 dataframe格式

data_py = hiveContext.createDataFrame(data_pd)

2、向hive數據庫中創建一個表,此表若存在,則不創建

# 設置表的字段名
str_s = ''
for i in data_pd.columns:
    str_s += '%s String,'% i
# 拼寫SQL語句
sql_str = 'create table if not exists mdw.predict_lot_count ({})'.format(str_s[:-1])  # 最後一個逗號需要去掉,否則報錯
hiveContext.sql(sql_str)  # 執行SQL

其中的 mdw 爲庫名,predict_lot_count 爲表名
3、向數據庫的表中存入數據

data_py.write.format("parquet").mode("overwrite").saveAsTable("predict_lot_count")

其中parquet 爲數據保存格式。overwrite 爲存儲方式,這裏爲覆蓋的方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章