Spark - Scala: "error: not found: value transform"

Spark - Scala: "error: not found: value transform"

在我实现的代码中出现以下错误:

error: not found: value transform
.withColumn("min_date", array_min(transform('min_date,
                                  ^

我一直无法解决这个问题。我已经有以下导入语句:

import sqlContext.implicits._
import org.apache.spark.sql.functions.split
import org.apache.spark.sql.functions._

我正在使用 Apache Zeppelin 来执行此操作。

这是完整的参考代码和我正在使用的数据集的示例:

1004,bb5469c5|2021-09-19 01:25:30,4f0d-bb6f-43cf552b9bc6|2021-09-25 05:12:32,1954f0f|2021-09-19 01:27:45,4395766ae|2021-09-19 01:29:13,
1018,36ba7a7|2021-09-19 01:33:00,
1020,23fe40-4796-ad3d-6d5499b|2021-09-19 01:38:59,77a90a1c97b|2021-09-19 01:34:53,
1022,3623fe40|2021-09-19 01:33:00,
1028,6c77d26c-6fb86|2021-09-19 01:50:50,f0ac93b3df|2021-09-19 01:51:11,
1032,ac55-4be82f28d|2021-09-19 01:54:20,82229689e9da|2021-09-23 01:19:47,
val users = sc.textFile("path to file").map(x=>x.replaceAll("\(","")).map(x=>x.replaceAll("\)","")).map(x=>x.replaceFirst(",","*")).toDF("column")
val tempDF = users.withColumn("_tmp", split($"column", "\*")).select(
  $"_tmp".getItem(0).as("col1"),
  $"_tmp".getItem(1).as("col2")
)

val output = tempDF.withColumn("min_date", split('col2 , ","))
    .withColumn("min_date", array_min(transform('min_date,
      c => to_timestamp(regexp_extract(c, "\|(.*)$", 1)))))
  .show(10,false)

functions(版本 3.1.2)中没有带有签名 transform(c: Column, fn: Column => Column) 的方法,因此您正在编写导入错误的对象或尝试执行其他操作。

您可能使用的 Spark < Spark 3.x 版本,而这个 Scala dataframe API transform 不工作。使用 Spark 3.x 您的代码可以正常工作。

我注意到 2.4 无法正常工作。时间不够,但请看这里: