在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外部表。具体语法