【发布时间】:2019-01-09 09:35:18
【问题描述】:
当我阅读 Spark/Hive SQL 文档时,Spark 2.4 及更早版本似乎不支持 Insert 到具有 列列表 的表中。
我有一个源表和一个目标表,其中包含不同的列数和不同的列名,我需要复制它们。
这是否意味着我必须在 PySpark 中编写代码才能完成这项工作,因为 Spark SQL 将无法做到这一点??
例子:
input_table( cola, colb, colc, cold, cole)
output_table(fieldx, fieldy, fieldz)
在 SQL(假设 RDBMS,如 MS-SQL、PostgreSQL 等)中,我会执行以下操作:
insert into output_table(fieldx, fieldy, fieldz) select cola, colb, colc from input_table
Spark SQL 不允许这样做,它不接受插入 SQL 语句中的列列表。
问题:如何在 PySpark 或(理想情况下)在 Spark-SQL(我使用的是 Spark 2.4)中以最少的代码和最高的性能完成这项任务?
谢谢
【问题讨论】:
-
这是在更高版本的 Spark (> 2.4) 中更新的东西,您可以在其中指定列?不支持这种基本的 sql 语法似乎很差......
标签: apache-spark