Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 是否使用列列表选择Spark SQL Insert?_Apache Spark - Fatal编程技术网

Apache spark 是否使用列列表选择Spark SQL Insert?

Apache spark 是否使用列列表选择Spark SQL Insert?,apache-spark,Apache Spark,当我阅读Spark/Hive SQL文档时,Spark 2.4和早期版本似乎不支持将插入到具有列列表的表中 我有一个源表和一个目标表,它们有不同的列数和不同的列名,我需要复制它们 这是否意味着我必须在PySpark中编写此代码才能完成此工作,因为Spark SQL将无法完成此工作 例如: input_table( cola, colb, colc, cold, cole) output_table(fieldx, fieldy, fieldz) 在SQL中(假设RDBMS如MS-SQL、Po

当我阅读Spark/Hive SQL文档时,Spark 2.4和早期版本似乎不支持将插入到具有列列表的表中

我有一个源表和一个目标表,它们有不同的列数和不同的列名,我需要复制它们

这是否意味着我必须在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不允许这样做,它不接受Insert SQL语句中的列列表

问题:如何在PySpark或(理想情况下)Spark SQL(我使用的是Spark 2.4)中以最少的代码和最高的性能完成此任务


谢谢

请将
输出
中不会从
输入表
复制的列指定为
中的
。(如果允许的话,只有一组列(而不是所有列)被
insert
ed列列表插入时会发生这种情况)


谢谢,这是我开始做的,这会表现得最好吗?我需要在一些select列上使用一些SQL函数/表达式来转换它们,例如将一些值转换为大写,提取一些子字符串,转换其他列等。数据源非常庞大,有几十亿行……这是在Spark(>2.4)的更高版本中更新的,您可以在其中指定列吗?不支持这种基本的sql语法似乎很糟糕。。。
insert into output_table
select cola, colb, colc,null as other1,--..specify non-copied column values as null 
from input_table