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 为存储方式,这里为覆盖的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kungs8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值