我有一个多列的Dataframe,其中一列是map(string,string)类型。我可以打印这个数据框,其中列作为map,数据作为map(“pun”->“pune”)。我想将这个Dataframe写入hive表(存储为avro),该表的列类型与map相同。
Df.withcolumn("cname", lit("Pune"))
withcolumn("city_code_name", map(lit("PUN"), col("cname"))
Df.show(false)
//table - created external hive table..stored as avro..with avro schema
删除这个Map类型列后,我可以将Dataframe保存到hiveavro表中。
保存到配置单元表的方式:
spark.save-保存avro文件
spark.sql-使用avro文件位置在配置单元表上创建分区
2条答案
按热度按时间wqlqzqxt1#
您可以通过saveastable示例实现这一点:
将mode选项更改为任何适合您的选项
kognpnkq2#
将此测试用例作为spark测试的示例
另外,如果您想要save选项,那么您可以尝试使用saveastable,如下所示
yourdataframewithmapcolumn.write.partitionby是创建分区的方法。