未找到 Spark SQL 包

Posted

技术标签:

【中文标题】未找到 Spark SQL 包【英文标题】:Spark SQL package not found 【发布时间】:2016-03-30 08:00:14 【问题描述】:

我对 Spark 还很陌生,遇到以下问题:当我尝试导入 SQLContext 时:

import org.apache.spark.sql.SQLContext;

或尝试显式初始化 SQLContext 变量:

SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

我从 Eclipse 收到一个错误:

无法解析导入的org.apache.spark.sql.SQLContext

我已经将 Spark 放入依赖文件中,除了 SQLContext 其他一切都很好。整个代码:

package main.java;

import java.io.Serializable;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;

import org.apache.spark.sql.SQLContext;

public class SparkTests 
    public static void main(String[] args)
        SparkConf conf = new SparkConf().setAppName("SparkMain");
        JavaSparkContext sc = new JavaSparkContext(conf);
        SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

        //DataFrame df = sqlContext
        System.out.println("\n\n\nHello world!\n\n\n");
    

当我尝试用mvn package 编译它时,我得到编译错误:

包 org.apache.spark.sql 不存在

任何想法为什么找不到 SQL 包?

编辑:

依赖文件pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <groupId>edu.berkeley</groupId>
    <artifactId>simple-project</artifactId>
    <modelVersion>4.0.0</modelVersion>
    <name>Simple Project</name>
    <packaging>jar</packaging>
    <version>1.0</version>
    <dependencies>
        <dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.6.1</version>
        </dependency>
    </dependencies>
</project>

【问题讨论】:

【参考方案1】:

如果您想在项目中使用 Spark SQL 或 DataFrames,您必须添加 spark-sql artifact 作为依赖项。在这种特殊情况下:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.10</artifactId> <!-- matching Scala version -->
    <version>1.6.1</version>  <!-- matching Spark Core version -->
</dependency>

应该可以解决问题。

【讨论】:

这很有帮助,即使官方网站中提到的 spark 示例缺少这种依赖关系。 github.com/apache/spark/blob/v2.1.0/examples/pom.xml

以上是关于未找到 Spark SQL 包的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Spark Cell 魔法

Spark AnalysisException 未找到全局表或视图

Spark-SQL CLI:未调用 SupportsPushDownFilters.pushFilters

spark sql应该如何配置访问hive metastore? [复制]

Spark SQL表分区找不到文件

Spark SQL:未解析的属性