2016-03-30 16 views
5

Jestem całkiem nowy Spark i mieć następujący problem: przy próbie importu SqlContext z:Spark pakiet SQL nie znaleziono

import org.apache.spark.sql.SQLContext; 

lub spróbować zainicjować SqlContext zmienną extenso:

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

pojawia się błąd z Eclipse:

The import org.apache.spark.sql.SQLContext cannot be resolved

Włożyłem Spark do pliku zależności, a wszystko inne jest płetwa e z wyjątkiem SQLContext. Cały kod:

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"); 
    } 
} 

Kiedy próbuję skompilować go z mvn package, pojawia się błąd kompilacji:

package org.apache.spark.sql does not exist

pomysłów, dlaczego pakiet SQL nie można znaleźć?

EDIT:

Plik zależność 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> 

Odpowiedz

6

Jeśli chcesz użyć Spark SQL lub DataFrames w projekcie trzeba będzie dodać spark-sql artefakt jako zależność. W tym konkretnym przypadku:

<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> 

powinien załatwić sprawę.

+0

Jest to bardzo pomocne, nawet w niektórych przykładach iskry wymienionych na oficjalnej stronie brakuje tej zależności. https://github.com/apache/spark/blob/v2.1.0/examples/pom.xml – Sankalp