2017-02-26 55 views
1

运行时pyspark 1.6.X它出现就好了。由于配置单元存在Metastore连接问题,无法运行pyspark 2.X

17/02/25 17:35:41 INFO storage.BlockManagerMaster: Registered BlockManager 
Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /__/.__/\_,_/_/ /_/\_\ version 1.6.1 
     /_/ 

Using Python version 2.7.13 (default, Dec 17 2016 23:03:43) 
SparkContext available as sc, SQLContext available as sqlContext. 
>>> 

但我重置SPARK_HOMEPYTHONPATHPATH后指向火花2.x的安装,事情南下很快

(一)我必须手动删除每次德比metastore_db

(B)pyspark没有启动:

[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
NOTE: SPARK_PREPEND_CLASSES is set, placing locally compiled Spark classes ahead of assembly. 
Setting default log level to "WARN". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 
17/02/25 17:32:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
17/02/25 17:32:53 WARN metastore.ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0 
17/02/25 17:32:53 WARN metastore.ObjectStore: Failed to get database default, returning NoSuchObjectException 

我不需要/护理hive功能:它打印这些不愉快的警告后挂起,但它很可能是他们中的情况下,需要火花2.X. hive最简单的工作配置是什么使pyspark 2.X高兴?

+0

有警告是好的,他们只是说创建空的metastore。你在“SPARK_PREPEND_CLASSES”中附加了哪些图书馆?当pyspark初始化挂起时,你可以附加spark jvm进程的线程转储吗? – Mariusz

+0

你有没有试过['enableHiveSupport'](http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.SparkSession.Builder.enableHiveSupport)函数?即使我没有访问Hive,我在从1.6迁移到2.x时也遇到了DataFrame问题。在构建器上调用该函数解决了我的问题。 (您也可以将它添加到配置中。) – santon

+0

@santon请做出答案:我确实有一些后续问题,但希望从授予信用开始 – javadba

回答

1

您是否试过enableHiveSupport功能?即使我没有访问Hive,我在从1.6迁移到2.x时也遇到了DataFrame问题。在构建器上调用该函数解决了我的问题。 (您也可以将它添加到配置中。)

如果您使用pyspark shell来配置Spark上下文,要启用配置单元支持,您需要通过配置来实现。在您的spark-defaults.conf尝试加入spark.sql.catalogImplementation hive

+0

这是一个有用的考虑事项。但如何处理'pyspark'甚至不会启动*?我的理解是你指的是'SparkSession.Builder',但是在'pyspark-shell'中运行的情况下,SparkSession已经创建并可用。 – javadba

+0

因此,使用pyspark shell加载默认配置。我将修改答案以显示如何在配置中启用Hive。 – santon

相关问题