【问题标题】:Spark SQL `elt` function converts to String?Spark SQL`elt`函数转换为字符串?
【发布时间】:2021-10-21 06:00:01
【问题描述】:

我正在浏览 Spark 功能,elt 引起了我的注意。 elt returns the n-th input.

但是,出于某种原因,elt 将我的内容转换为字符串:

SELECT elt(1, *) FROM VALUES TIMESTAMP '2021-08-17T13:20:00.000Z'

+----------------------------+
|elt(1, CAST(col1 AS STRING))|
+----------------------------+
|         2021-08-17 13:20:00|
+----------------------------+

为什么会这样?难道我做错了什么?对于这样一个基本功能,转换为字符串似乎是一个非常随意的限制。

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    这个here是我能找到的关于这个问题的唯一信息:

    从 Spark 2.3 开始,当所有输入都是二进制时,SQL elt() 返回一个 输出为二进制。否则,它以字符串形式返回。在 Spark 2.3 之前, 尽管有输入类型,它总是以字符串形式返回。为了保持旧 行为,将 spark.sql.function.eltOutputAsString 设置为 true。

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2017-11-25
      • 2018-11-24
      相关资源
      最近更新 更多