【问题标题】:Spark : Is there an equivalent to spark SQL's LATERAL VIEW in the Spark API?Spark:Spark API 中是否有与 spark SQL 的 LATERAL VIEW 等效的功能?
【发布时间】:2021-05-28 00:04:21
【问题描述】:

标题说明了一切:

Spark API 中是否有与 SPARK SQL LATERAL VIEW 命令等效的命令,以便我可以从包含多列数据结构的 UDF 生成列,然后将结构中的列横向分布到父数据框作为单独的列?

相当于df.select(expr("LATERAL VIEW udf(col1,col2...coln)"))的东西

【问题讨论】:

  • df.select("*", explode(udf(col1,col2...coln)))?
  • 您好,感谢您的回答。我实际上是通过它们的元组句柄选择它们来解决这个问题的......请参阅下面的答案......
  • 我认为爆炸只会炸毁数组,而不是一组值的结构......我可能错了吗?

标签: apache-spark lateral-join sparkapi


【解决方案1】:

我通过在列中选择 udf 解决了这个问题:

val dfWithUdfResolved = dataFrame.select(calledUdf()).as("tuple_column"))

...然后...

dfWithUdfResolved
  .withColumn("newCol1", $"tuple_column._1")
  .withColumn("newCol2", $"tuple_column._2")
  // ...
  .withColumn("newColn", $"tuple_column._n")

基本上使用元组表示法将值从列中提取到新的离散列中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2011-01-16
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多