当前,我正在使用Spark版本2.1.0,作为数据提取作业的一部分,我必须使用insertinto方法将数据提取到配置单元表中。但是Spark 2.1版本存在一个错误,在将数据插入到蜂巢表中时,insertinto方法不会保持列顺序。
我已经尝试过将saveAsTable方法与附加模式一起使用,但是由于我要先使用正确的数据类型手动创建表,然后再提取数据,因此无法使用
我试图从现有的配置单元表创建spark数据帧,并尝试从中获取列序列,并传递此列表结果以确保列序列,但是每次在配置单元表顶部创建数据帧以获取列序列时。每次加载配置单元表以创建数据帧时,都会占用内存吗?
有人知道,如何通过更好的方法将数据摄取到配置单元表中以保持列顺序?
答案 0 :(得分:0)
您可能首先尝试获取配置单元表的列,然后将其应用于spark数据框:
target_table = sqlContext.table("my_target_table")
my_df.select(*target_table.columns).saveAsTable("my_target_table")