gpt4 book ai didi

java - 如何使用 Java 在 Spark DataFrame 中应用映射函数?

转载 作者:行者123 更新时间:2023-12-05 06:37:55 25 4
gpt4 key购买 nike

我正在尝试使用 Java 在 Spark 中的 DataFrame 上使用 map 函数。我正在关注说

的文档

map(scala.Function1 f, scala.reflect.ClassTag evidence$4) Returns a new RDD by applying a function to all rows of this DataFrame.

在使用 map 中的 Function1 时,我需要实现所有功能。我看过一些questions与此相关,但提供的解决方案将 DataFrame 转换为进入RDD .如何使用 DataFrame 中的 map 功能无需将其转换为 RDD还有 map 的第二个参数是什么scala.reflect.ClassTag<R> evidence$4

我正在使用 Java 7Spark 1.6

最佳答案

我知道您的问题是关于 Java 7 和 Spark 1.6,但在 Spark 2(显然还有 Java 8)中,您可以将映射函数作为类的一部分,因此您不需要操作 Java lambda。

调用看起来像:

Dataset<String> dfMap = df.map(
new CountyFipsExtractorUsingMap(),
Encoders.STRING());
dfMap.show(5);

类看起来像:

  /**
* Returns a substring of the values in the id2 column.
*
* @author jgp
*/
private final class CountyFipsExtractorUsingMap
implements MapFunction<Row, String> {
private static final long serialVersionUID = 26547L;

@Override
public String call(Row r) throws Exception {
String s = r.getAs("id2").toString().substring(2);
return s;
}
}

您可以在 this example on GitHub 中找到更多详细信息.

关于java - 如何使用 Java 在 Spark DataFrame 中应用映射函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934429/

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