apache-spark - 如何在 Google Dataproc 主节点上启用 pyspark HIVE 支持
问题描述
我创建了一个 dataproc 集群并手动安装 conda 和 Jupyter notebook。然后,我通过 conda 安装 pyspark。我可以成功地运行火花
from pyspark import SparkSession
sc = SparkContext(appName="EstimatePi")
但是,我无法启用 HIVE 支持。以下代码被卡住并且不返回任何内容。
from pyspark.sql import SparkSession
spark = (SparkSession.builder
.config('spark.driver.memory', '2G')
.config("spark.kryoserializer.buffer.max", "2000m")
.enableHiveSupport()
.getOrCreate())
Python 2.7.13 版、Spark 2.3.4 版
有什么方法可以启用 HIVE 支持?
解决方案
我不建议手动安装pyspark
. 执行此操作时,您将获得与 Dataproc 自己的不同的新 spark/pyspark 安装,并且不会获得配置/调整/类路径/等。这可能是 Hive 支持不起作用的原因。
要使用正确配置的 pyspark 获得 conda,我建议在图像(默认)或更高版本上选择ANACONDA
和JUPYTER
可选组件。1.3
此外,在1.4
及更高版本的图像中,Mini-Conda 是默认用户 Python,预配置了 pyspark。如果你愿意,你可以自己 pip/conda 安装 Jupyter。
请参阅https://cloud.google.com/dataproc/docs/tutorials/python-configuration
同样正如@Jayadeep Jayaraman 指出的那样,Jupyter 可选组件与组件网关一起使用,这意味着您可以从开发人员控制台中的链接使用它,而不是向世界开放端口或 SSH 隧道。
tl/dr:我为您的下一个集群推荐这些标志:--optional-components ANACONDA,JUPYTER --enable-component-gateway
推荐阅读
- xcode - 无效的 Swift 支持 xcode 版本 11.6 (11E708)
- r - 我的功能没有显示。它显示错误
- laravel - Laravel 中的数据透视表
- python - 如何在目录中的所有文本文件中搜索字符串并将找到的结果放在 Python 中的文本文件中
- sharepoint - 如何在非 SPFx 应用程序的前端使用 Microsoft Graph API?
- sql - SELECT Distinct 和 IIF 未给出预期结果
- svg - 如何将客户端渲染的 svg 图形保存为 svg 文件?
- java - android BTLE 扫描回调貌似没有被调用
- apache-kafka - Confluent 服务器集群中主题分区的异步复制
- vega-lite - Vega-Lite 重复图表中的缩放、跟踪