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

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在将 Pandas DataFrame 存储到 Hive 之前,需要先将其转换为 Spark DataFrame。可以使用 PySpark 的 SQLContext 或 SparkSession 对象创建 Spark DataFrame。假设已经创建了一个名为 `pandas_df` 的 Pandas DataFrame,然后可以执行以下步骤将其存储到 Hive : 1. 导入必要的库和模块: ```python from pyspark.sql import SparkSession, SQLContext ``` 2. 创建 SparkSession 对象: ```python spark = SparkSession.builder \ .appName("pandas_to_hive") \ .config("spark.sql.warehouse.dir", "/user/hive/warehouse") \ .enableHiveSupport() \ .getOrCreate() ``` 其,`appName` 是应用程序名称,`config` 指定了 Hive 数据仓库的路径,`enableHiveSupport` 用于启用 Hive 支持。 3. 将 Pandas DataFrame 转换为 Spark DataFrame: ```python spark_df = spark.createDataFrame(pandas_df) ``` 4. 将 Spark DataFrame 存储到 Hive : ```python spark_df.write \ .mode("overwrite") \ .saveAsTable("database_name.table_name") ``` 其,`mode` 指定了写入模式,`saveAsTable` 将数据写入到指定的表,如果表不存在,则会自动创建。 完整示例代码如下: ```python from pyspark.sql import SparkSession, SQLContext import pandas as pd # 创建 SparkSession 对象 spark = SparkSession.builder \ .appName("pandas_to_hive") \ .config("spark.sql.warehouse.dir", "/user/hive/warehouse") \ .enableHiveSupport() \ .getOrCreate() # 读取 Pandas DataFrame pandas_df = pd.read_csv("path/to/csv/file.csv") # 将 Pandas DataFrame 转换为 Spark DataFrame spark_df = spark.createDataFrame(pandas_df) # 将 Spark DataFrame 存储到 Hive spark_df.write \ .mode("overwrite") \ .saveAsTable("database_name.table_name") ``` 请根据实际情况修改代码的参数和路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kungs8

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

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

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

打赏作者

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

抵扣说明:

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

余额充值