Pyspark 读取本地csv文件,插入parquet格式的hive表中

本文记录了使用Pyspark将本地CSV文件读取并转换为Parquet格式,插入Hive表的过程中遇到的坑,包括权限问题、SQL换行、编码问题及解决方案,尤其是中文乱码问题的解决方法,涉及Hive外部表的创建和数据插入。
摘要由CSDN通过智能技术生成

在CDSW上模型运行出结果,为csv文件。由于报表的需求,要将csv文件插入到parquet格式中的表中。

在其中遇到了很多坑,在此记下来,希望能帮助到遇到同样问题的人。


1、初始化配置创建Spark Session。

(注意事项:Spark2.0版本开始将sqlContext、hiveContext统一整合为SparkSession)

2、读取文件并转换为Spark DataFrame格式。

(坑1:路径和语法问题。spark.read.csv函数可以直接将csv读取为Spark DataFrame格式,但CDSW上的PySpark连接的是Hive表,而并非本地环境。因此本地环境的csv需要先用pd.read_csv读取为pandas DataFrame格式后,再转为spark.createDataFrame格式)

3、将转换后的DF注册为一张临时表。具体语法如下:

data.createTempView("tableTemp")

(坑2:临时表无法查看。创建的是临时表,因此用df.show()等函数无法查看其中的内容等等参数。)

4、通过Spark SQL创建Hive外部表。具体语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值