java - [spark-cassandra-connector]如何在spark 2.3.1中将scala隐式支持的代码转换为java
问题描述
我正在尝试将 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 上工作正常,现在它不工作......
我在这里做错了什么?如何解决?
解决方案
DataFrame
Java中没有这样的东西——它总是DataSet
属于 class 的Row
。在 Scala 中,有一个简单的别名......
这是通过以下方式从 Cassandra 读取数据的 Java 代码的最小示例spark.sql
:
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
(完整代码)完成:
Dataset<Row> dataset = spark.read()
.format("org.apache.spark.sql.cassandra")
.options(ImmutableMap.of("table", "jtest", "keyspace", "test"))
.load();
推荐阅读
- javascript - 如何从侧边实现球和正方形之间的碰撞检测?
- blazor - Blazor WebAssembly 项目实时更新不起作用
- yaml - 如何将默认工作流(github 操作)发布到 git hub 市场?
- java - 有没有办法将参数插入到 sql avg 查询中?
- flutter - 在什么情况下应该使用 listview 而不是 listview.builder?
- sql-server - SQL Server db_datareader 无法将表编写为脚本,缺少什么权限?
- node.js - mustache 可以多次渲染 html 的图片吗?
- c++ - C++Builder 中的 OnClick 事件签名问题
- java - 相邻元素的最小绝对差并计算总和
- spring-cloud - 如何为在 SAME Eureka 服务下注册的每个实例配置单独的弹性 4j 断路器