NYC*_*yes 5 python hive apache-spark pyspark hive-metastore
我通过 pyspark 从头开始构建并以编程方式使用我的环境PySpark(就像我在此处演示的那样);而不是从可下载的 Spark 发行版中使用。正如您在上面 URL 的第一个代码片段中看到的,我通过 SparkSession 启动脚本中的 k/v conf-pairs(除其他外)来完成此操作。(顺便说一句,这种方法使我能够在各种 REPL、IDE 和 JUPYTER 中工作)。condapipPySpark
然而,关于配置 Spark 支持访问 HIVE 数据库和元数据存储,该手册是这样说的:
的配置
Hive是通过将hive-site.xml、core-site.xml(用于安全配置)和hdfs-site.xml(用于 HDFS 配置)文件放在conf/.
上面的conf/意思是conf/Spark 发行包中的目录。但pyspark通过pip和conda当然没有该目录,那么在这种情况下如何将 HIVE 数据库和元存储支持插入到 Spark 中呢?
我怀疑这可能是通过特殊前缀的 SparkConf K/V 对来实现的,其形式为:(spark.hadoop.*参见此处);如果是,我仍然需要确定需要哪些 HADOOP / HIVE / CORE 指令。我想我会尝试一下并犯错。:)
注:.enableHiveSupport()已经包含在内。
我会修改spark.hadoop.*K/V 对,但如果有人知道这是如何立即完成的,请告诉我。
谢谢。:)
编辑:提供解决方案后,我更新了上面第一个 URL中的内容。它现在集成了下面讨论的SPARK_CONF_DIR环境HADOOP_CONF_DIR变量方法。
在这种情况下,我推荐官方配置指南(强调我的):
\n\n\n\n\n如果您计划使用 Spark 从 HDFS 读取和写入,则 Spark\xe2\x80\x99s 类路径中应包含两个 Hadoop 配置文件:
\n\n\n
\n\n- hdfs-site.xml,为 HDFS 客户端提供默认行为。
\n- core-site.xml,设置默认文件系统名称。
\n(...)
\n\n要使这些文件对 Spark 可见,请设置
\nHADOOP_CONF_DIR为$SPARK_HOME/conf/spark-env.sh包含配置文件的位置。
此外:
\n\n\n\n\n要指定除默认 \xe2\x80\x9c
\nSPARK_HOME/conf\xe2\x80\x9d 之外的其他配置目录,您可以设置SPARK_CONF_DIR. Spark 将使用此目录中的配置文件(spark-defaults.conf、spark-env.sh、log4j.properties 等)。
因此,可以使用 Spark 安装可访问的任意目录来放置所需的配置文件,和SPARK_CONF_DIR/或HADOOP_CONF_DIR可以使用os.environ.
最后,大多数时候甚至不需要单独的 Hadoop 配置文件,因为 Hadoop 特定属性可以使用spark.hadoop.*前缀直接在 Spark 文档中设置。
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |