2017-03-24 23 views
5

Próbuję skonfigurować iskrę w systemie Windows 10. Początkowo napotkałem this error podczas uruchamiania i pomogło rozwiązanie w łączu. Teraz ja nadal nie jestem w stanie uruchomić import sqlContext.sql gdyż nadal wyrzuca mi błądBłąd iskry Apache: nie znaleziono: wartość sqlContext

---------------------------------------------------------------- 
Fri Mar 24 12:07:05 IST 2017: 
Booting Derby version The Apache Software Foundation - Apache Derby - 10.12.1.1 - (1704137): instance a816c00e-015a-ff08-6530-00000ac1cba8 
on database directory C:\metastore_db with class loader [email protected]606fee 
Loaded from file:/F:/Soft/spark/spark-2.1.0-bin-hadoop2.7/bin/../jars/derby-10.12.1.1.jar 
java.vendor=Oracle Corporation 
java.runtime.version=1.8.0_101-b13 
user.dir=C:\ 
os.name=Windows 10 
os.arch=amd64 
os.version=10.0 
derby.system.home=null 
Database Class Loader started - derby.database.classpath='' 
17/03/24 12:07:09 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException 
Spark context Web UI available at http://10.128.18.22:4040 
Spark context available as 'sc' (master = local[*], app id = local-1490337421381). 
Spark session available as 'spark'. 
Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /___/ .__/\_,_/_/ /_/\_\ version 2.1.0 
     /_/ 

Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101) 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> import sqlContext.sql 
<console>:23: error: not found: value sqlContext 
     import sqlContext.sql 
      ^

Odpowiedz

16

Spark context available as 'sc' (master = local[*], app id = local-1490337421381).

Spark session available as 'spark'.

W Spark 2.0.x, punkt wejścia Spark jest SparkSession i który jest dostępny w skorupkach Spark jako spark. więc trzeba spróbować

spark.sqlContext.sql(...) 

Można również utworzyć swój SparkContex jak jest mój wybór jako Spark skorupy stworzył już jeden dla ciebie więc z niego skorzystać to

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

pierwszą opcję.

0

Ponieważ używasz Spark 2.1 będziesz musiał użyć obiektu SparkSession. Można odwołać się do SparkContext z SparkSession obiektu

var sSession = org.apache.spark.sql.SparkSession.getOrCreate(); 
var sContext = sSession.sparkContext; 
0

Jeśli jesteś na Cloudera i mieć ten problem, rozwiązanie z tego biletu GitHub pracował dla mnie (https://github.com/cloudera/clusterdock/issues/30):

The root user (who you're running as when you start spark-shell) has no user directory in HDFS. If you create one (sudo -u hdfs hdfs dfs -mkdir /user/root followed by sudo -u hdfs dfs -chown root:root /user/root), this should be fixed.

Tj utwórz katalog domowy użytkownika dla użytkownika z uruchomioną powłoką iskrzenia. Naprawiłem to dla mnie.

Powiązane problemy