Spark sql DataFrame类不存在

时间:2016-10-19 11:46:03

标签: java maven apache-spark dataframe

我在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类是未知的!知道为什么会这样吗?

3 个答案:

答案 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)

DataFramesScala, 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操作)

https://spark.apache.org/docs/2.0.2/sql-programming-guide.html#untyped-dataset-operations-aka-dataframe-operations