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
Scala 火花SQL合并_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 火花SQL合并

Scala 火花SQL合并,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我使用sparksql从表中提取了coalesce值。然后,我将结果转换为字符串,以便将该值插入到另一个表中 但是,正在将合并的列名而不是合并值插入到表中 这些是我的合并和插入查询 COALESCE: --------- val lastPartition = spark.sql("SELECT COALESCE(MAX(partition_name), 'XXXXX') FROM db1.table1").toString.mkString Result: ------

我使用sparksql从表中提取了coalesce值。然后,我将结果转换为字符串,以便将该值插入到另一个表中

但是,正在将合并的列名而不是合并值插入到表中

这些是我的合并和插入查询

COALESCE:
---------

val lastPartition = spark.sql("SELECT COALESCE(MAX(partition_name), 'XXXXX') FROM db1.table1").toString.mkString

Result:
-------

COALESCE(MAX(partition_name),XXXXX
            20210309



INSERT:
-------

val result = spark.sql(s"""INSERT INTO db2.table2 VALUES ('col1','col2','${lastPartition}','col4')""")


Result:
--------

col1     col2                       col3                                 col4
1        John    [COALESCE(MAX(partition_name),XXXXX):string]        15313.21

这里,我希望column(col3)的值是20210309,而不是coalesce列名。

您需要使用
.head().getString(0)
来获取字符串作为变量。否则,如果使用
.toString
,则会因为延迟计算而得到表达式

val lastPartition = spark.sql("SELECT COALESCE(MAX(partition_name), 'XXXXX') FROM db1.table1").head().getString(0)