为什么我不能导入org.apache.spark.sql.DataFrame

时间:2017-07-19 10:39:51

标签: java apache-spark

我有Maven依赖项spark-sql_2.1.0spark-hive_2.1.0。但是,当我尝试import org.apache.spark.sql.DataFrame时,会出现错误。但是进口 org.apache.spark.sql.SQLContext没问题,没有错误。为什么呢?

2 个答案:

答案 0 :(得分:5)

DataFrame已成为Spark 2.x中的type DataFrame = Dataset[Row]。 Java没有类型别名,因此它在Java中不可用。您现在应该使用新类型Dataset<Row>,因此请同时导入org.apache.spark.sql.Datasetorg.apache.spark.sql.Row

答案 1 :(得分:1)

 import org.apache.spark.sql.DataFrame

适用于scala,而不适用于java,因为没有为java开发的库。您可以按照Spark SQL, DataFrames and Datasets Guide

中的说明使用dataSet

您可以导入以下内容

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

并将其用作

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

或者

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

或者

Dataset<Row> usersDF = spark.read().load("examples/src/main/resources/users.parquet");