[spark-cassandra-connector]如何在spark 2.3.1中将scala隐式支持的代码转换为java

问题描述 投票:0回答:1

我正在尝试将spark-cassandra使用的项目从scala_2.11重构为java_1.8。我正在使用spark-sql_2.11-2..3.1和spark-cassandra-connector_2.11-2.3.1。现在我试图将代码重构为java 1.8。

我有一些暗示,并使用了DataFrame。

import com.datastax.spark.connector._
import spark.implicits._
    &
import org.apache.spark.sql.DataFrame

现在如何将它们转换为等效的java代码?任何样品?

无法识别/定义DataFrame的导入,scala 2.11正常工作现在无法正常工作...

我在这做错了什么?怎么解决?

java apache-spark apache-spark-sql spark-cassandra-connector
1个回答
1
投票

在Java中没有DataFrame这样的东西 - 它始终是DataSet类的Row。在Scala中,有一个简单的别名......

以下是通过spark.sql从Cassandra读取数据的Java代码的最小示例:

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

public class SparkTest1 {

  public static void main(String[] args) {
    SparkSession spark = SparkSession
    .builder()
    .appName("CassandraSpark")
    .getOrCreate();

    Dataset<Row> sqlDF = spark.sql("select * from datastax.vehicle limit 1000");
    sqlDF.printSchema();
    sqlDF.show();
  }

}

或者它可以通过spark.readfull code)完成:

Dataset<Row> dataset = spark.read()
        .format("org.apache.spark.sql.cassandra")
        .options(ImmutableMap.of("table", "jtest", "keyspace", "test"))
        .load();
© www.soinside.com 2019 - 2024. All rights reserved.