我在java spark应用程序中添加了maven依赖项以使用DataFrame。据我所知,依赖项应该在pom.xml中根据以下格式说明:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.2.0</version>
</dependency>
但是当我想将org.apache.spark.sql.DataFrame导入我的代码时,DataFrame类是未知的!知道为什么会这样吗?
答案 0 :(得分:1)
我认为你的版本错了。将这些代码添加到您的pom.xml
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.2</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.2</version>
<scope>provided</scope>
</dependency>
并导入如下。
import org.apache.spark.sql.DataFrame;
答案 1 :(得分:0)
Spark在Spark 1.3版本中引入了Dataframes。
您的Spark版本 1.2.0 ,要访问dataframe API
,请使用spark版本&gt; = 1.3.0
如果您也是Datasets
,请使用spark版本&gt; = 1.6.0 ,
Spark 1.6,引入了数据集API
答案 2 :(得分:0)
DataFrames
为Scala, Java, Python and R
中的结构化数据操作提供了特定于域的语言。
如上所述,在Spark 2.0
中,“ DataFrames只是行的数据集 ”(这就是为什么找不到DataFrame
Scala和Java API中Verison 2.0及更高版本中的类)。与强类型的Scala / Java Datasets
附带的“类型转换”相反,这些操作也称为“非类型转换”。
示例:
Dataset<Row> ds3 = sqlContext.read().text("XXX/XXX/abc.txt");
注意:我只是在“行”之前添加了星号,以显示尖括号,否则不可见(作为一种解决方法)。
有关更多详细信息,请参阅Spark文档,主题-无类型的数据集操作(也称为DataFrame操作)