在GCP上运行pyspark作业(使用dataproc 1.4),我正在尝试从GCP存储中读取数据。获取以下错误:
from google.cloud import storage
File "/opt/conda/default/lib/python3.6/site-packages/google/cloud/storage/__init__.py", line 38, in <module>
from google.cloud.storage.blob import Blob
File "/opt/conda/default/lib/python3.6/site-packages/google/cloud/storage/blob.py", line 54, in <module>
from google.cloud.iam import Policy
ModuleNotFoundError: No module named 'google.cloud.iam'我认为所有云依赖项都会默认加载到环境中;我也尝试在创建集群时添加‘PIP_ google.cloud =google-cloud-iam==0.1.0’,但没有成功。
编辑:更一般的问题- pip install不能识别带有连字符的python包(例如'PIP_PACKAGES=google-cloud-storage')。我应该使用什么转义模式来让它工作?
发布于 2019-07-04 12:03:46
应该不需要使用存储API从GCS读取数据。取而代之的是使用Dataproc 1提供的GCS连接器。
它被实现为hadoop文件系统,因此任何spark读写API都能够接受gs://my-bucket/...格式的URI。例如:
sc.textFile("gs://my-bucket/example.txt")Globbing也应该可以工作。
1(https://cloud.google.com/dataproc/docs/concepts/connectors/cloud-storage)
https://stackoverflow.com/questions/56862261
复制相似问题