gpt4 book ai didi

java - Spark - 将 scala 转换为 java

转载 作者:行者123 更新时间:2023-12-02 05:13:45 24 4
gpt4 key购买 nike

使用apache-spark处理数据。

鉴于这样scala代码:

val rdd1 = sc.cassandraTable("player", "playerinfo").select("key1", "value")
val rdd2 = rdd1.map(row => (row.getString("key1"), row.getLong("value")))

基本上,它隐藏了 RDD 'rdd1' 到另一个 RDD 'rdd2',但它将'rdd1'存储为键值对形式。

注意源数据来自cassandrakeys1是复合键的一部分并且 value是值。

那么如何将其转换为Java这样我就会有一个 JavaPairRDD<String,Long>使用 Spark Java API?我已经有一个cassandraRowsRDD从下面的Java代码中成功生成:

  JavaRDD<String> cassandraRowsRDD = javaFunctions(sc).cassandraTable("player", "playerinfo")
.map(new Function<CassandraRow, String>() {
@Override
public String call(CassandraRow cassandraRow) throws Exception {
return cassandraRow.toString();
}
});

最佳答案

CassandraJavaRDD 继承 mapToPair 方法。 Java中可以调用它来获取键值对RDD。

    JavaPairRDD<String, String> cassandraKeyValuePairs = javaFunctions(sc).cassandraTable("player", "playerinfo").mapToPair(
new PairFunction<CassandraRow, String, String>() {
@Override
public Tuple2<String, String> call(CassandraRow row) throws Exception {
return new Tuple2(row.getString("key1"), row.getLong("value"));
}
}
);

您还可以在 cassandraRowsRDD 上调用该函数。

关于java - Spark - 将 scala 转换为 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137443/

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