gpt4 book ai didi

java - 尝试在 Spark DataFrame 上使用 map

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:03 26 4
gpt4 key购买 nike

我最近开始尝试使用 Spark 和 Java。我最初使用 RDD 完成了著名的 WordCount 示例,一切都按预期进行。现在我正在尝试实现我自己的示例,但使用的是 DataFrames 而不是 RDD。

所以我正在从文件中读取数据集

DataFrame df = sqlContext.read()
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.option("delimiter", ";")
.option("header", "true")
.load(inputFilePath);

然后我尝试选择一个特定的列并对每一行应用一个简单的转换

df = df.select("start")
.map(text -> text + "asd");

但是编译发现第二行有问题,我不是很理解(起始列被推断为string类型)。

Multiple non-overriding abstract methods found in interface scala.Function1

为什么我的 lambda 函数被视为 Scala 函数?错误消息的实际含义是什么?

最佳答案

如果您在数据框上使用select函数,您会得到一个数据框。然后在 Row 数据类型而不是行的值上应用一个函数。之后,您应该首先获取该值,因此您应该执行以下操作:

df.select("start").map(el->el.getString(0)+"asd")

但是你会得到一个 RDD 作为返回值而不是 DF

关于java - 尝试在 Spark DataFrame 上使用 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com