Java 为什么可以';导入org.apache.spark.sql.DataFrame

Java 为什么可以';导入org.apache.spark.sql.DataFrame,java,apache-spark,Java,Apache Spark,我有Maven依赖项spark-sql_2.1.0和spark-hive_2.1.0。但是,当我尝试导入org.apache.spark.sql.DataFrame时,出现了一个错误。但是进口 org.apache.spark.sql.SQLContext正常,没有错误。为什么?数据帧在Spark 2.x中已成为类型DataFrame=Dataset[Row]。Java没有类型别名,因此在Java中不可用。现在应该使用新的类型Dataset,因此导入org.apache.spark.sql.Da

我有Maven依赖项
spark-sql_2.1.0
spark-hive_2.1.0
。但是,当我尝试导入org.apache.spark.sql.DataFrame时,出现了一个错误。但是进口
org.apache.spark.sql.SQLContext
正常,没有错误。为什么?

数据帧在Spark 2.x中已成为
类型DataFrame=Dataset[Row]
。Java没有类型别名,因此在Java中不可用。现在应该使用新的类型
Dataset
,因此导入
org.apache.spark.sql.Dataset
org.apache.spark.sql.Row

 import org.apache.spark.sql.DataFrame
适用于
scala
而不适用于
java
,因为没有为
java
开发的库。您可以使用
数据集
,如中所述

您可以导入以下内容

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
并将其用作

Dataset<Row> peopleDataFrame = spark.createDataFrame(rowRDD, schema);
Dataset peopleDataFrame=spark.createDataFrame(rowRDD,schema);

Dataset peopleDF=spark.createDataFrame(peopleRDD,Person.class);

Dataset usersDF=spark.read().load(“examples/src/main/resources/users.parquet”);

您遇到的错误类型是什么?这对我很有用你用什么语言?我用的是@T.GawędaJava@JasonShu好的,所以我的答案是正确的:)这是正确的。但是如果我得到一个数据帧,例如sqlContext.read()。我应该怎么做?你可以使用
Dataset df=sqlContext.read.csv(“位置”)
:)应该没问题。你试过了吗?是的,它可以工作。但是当涉及到sqlContext.read.json时,它失败了。你看到@JasonShu了吗?你应该在Spark 2.x中使用SparkSession:)是的,我的Spark是2.x。而sqlContext.read的返回类型是DataFrame。所以会有错误
Dataset<Row> peopleDF = spark.createDataFrame(peopleRDD, Person.class);
Dataset<Row> usersDF = spark.read().load("examples/src/main/resources/users.parquet");