Apache spark 由于配置单元元存储连接问题,无法运行pyspark 2.X

Apache spark 由于配置单元元存储连接问题,无法运行pyspark 2.X,apache-spark,hive,pyspark,Apache Spark,Hive,Pyspark,当运行pyspark1.6.X时,它运行得很好 17/02/25 17:35:41 INFO storage.BlockManagerMaster: Registered BlockManager Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 1.6.1 /_/

当运行
pyspark
1.6.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\u HOME
PYTHONPATH
PATH
指向SPARK 2.x安装后,事情很快就变糟了

(a) 每次我都必须手动删除derby
metastore\u 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
功能:但spark 2.X可能需要这些功能。最简单的
hive
工作配置是什么,以使
pyspark 2.X
快乐?

您尝试过该功能吗?从1.6迁移到2.x时,我遇到了数据帧问题,即使我没有访问配置单元。在生成器上调用该函数解决了我的问题。(您也可以将其添加到配置中。)


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

警告没有问题,它们只是说要创建空的元存储。您在
SPARK\u PREPEND\u类中附加了哪些库?当pyspark初始化挂起时,是否可以附加spark jvm进程的线程转储?是否尝试过该功能?从1.6迁移到2.x时,我遇到了数据帧问题,即使我没有访问配置单元。在生成器上调用该函数解决了我的问题。(你也可以将其添加到配置中。)@santon请回答:我确实有一些后续问题,但想从授予信用开始这是一个有用的考虑。但是如何处理pyspark甚至不能启动的问题呢?据我所知,您指的是
SparkSession.Builder
——但是在
pysparkshell
中运行时,已经创建了一个可用的SparkSession。因此,使用pysparkshell加载默认配置。我将修改答案以显示如何在配置中启用配置单元。