问题:使用spark将数据插入配置单元表

gdx19jrr  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(327)

目前我正在使用sparkversion2.1.0,作为数据摄取工作的一部分,我必须使用insertinto方法将数据摄取到配置单元表中。但是spark2.1版本有一个bug,insertinto方法在向配置单元表插入数据时不会维护列序列。
我已经尝试在append模式下使用saveastable方法,但是它不起作用,因为在数据摄取之前,我首先使用正确的数据类型手动创建表。
我尝试从现有配置单元表创建sparkDataframe,并尝试从中获取列序列,并传递此列表结果以确保列序列,但每次在配置单元表顶部创建Dataframe时都要获取列序列。每次加载配置单元表来创建Dataframe都会有内存开销吗?
有人知道,如何在数据摄取到配置单元表的过程中用更好的方法维护列序列吗?

u59ebvdq

u59ebvdq1#

您可以尝试首先获取配置单元表的列,然后将它们应用于sparkDataframe:

target_table = sqlContext.table("my_target_table")
my_df.select(*target_table.columns).saveAsTable("my_target_table")

相关问题