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

wbgh16ku  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(146)

我正在尝试将spark-cassandra使用的项目从scala_2.11重构为java_1.8。我正在使用spark-sql_2.11-2..3.1和spark-cassandra-connector_2.11-2.3.1。现在我正在尝试将代码重构为java1.8。
我有几个暗示和DataFrame被使用。

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

现在如何将它们转换成等价的java代码?有什么示例吗?
无法识别/定义DataFrame的导入,在Scala 2.11中运行良好,但现在无法运行...
我做错了什么?怎么补救?

mec1mxoz

mec1mxoz1#

在Java中没有DataFrame这样的东西--它总是Row类的DataSet
下面是通过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();
  }

}

或者它可以通过x1M4 N1 X(完整代码)来完成:

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

相关问题