2016-03-30 14 views
5

Sono abbastanza nuovo a Spark, e hanno i seguenti problemi: quando si tenta di importare SqlContext con:Spark non trovato

import org.apache.spark.sql.SQLContext; 

o cercare di inizializzare SqlContext variabile in modo esplicito:

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

ottengo un errore da Eclipse:

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

ho messo Spark nel file di dipendenza, e tutto il resto è fin e tranne per SQLContext. L'intero codice:

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

Quando provo a compilare con mvn package, ottengo l'errore di compilazione:

package org.apache.spark.sql does not exist

Tutte le idee perché il pacchetto di SQL non può essere trovato?

EDIT:

Il file di dipendenza 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> 

risposta

6

Se si desidera utilizzare SQL Spark o DataFrames nel progetto si dovrà aggiungere spark-sql artefatto come una dipendenza. In questo caso:

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

dovrebbe fare il trucco.

+0

Questo è molto utile, anche se in qualche modo gli esempi di scintilla menzionati nel sito ufficiale mancano di questa dipendenza. https://github.com/apache/spark/blob/v2.1.0/examples/pom.xml – Sankalp