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) 每次我都必须手动删除derbymetastore\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加载默认配置。我将修改答案以显示如何在配置中启用配置单元。