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

[spark-cassandra-connector]How to convert scala implicit supported code to java in spark 2.3.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 的导入不是 recognized/defined,在 scala 2.11 上工作正常,现在它不起作用 ...

我做错了什么?如何解决?

Java 中没有 DataFrame 这样的东西 - 它始终是 class RowDataSet。在 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.read (full code):

Dataset<Row> dataset = spark.read()
        .format("org.apache.spark.sql.cassandra")
        .options(ImmutableMap.of("table", "jtest", "keyspace", "test"))
        .load();