Если вы пишете программу Spark, вам не нужно читать файл с использованием собственных библиотек python.
Вы должны использовать библиотеки Spark Core / SQL для чтения данных и создания RDD / Dataframe Исходя из этого, потому что ваши данные могут не вписаться в одну машину.
df = spark.read.csv('gs://movie_files_101/u.item')
Я предполагаю, что вы используете Datapro c, а datapro c имеет установленный разъем GCS oop, что делает GCS
Гражданин первого класса в экосистеме Spark.
Если вы хотите sh читать файл, используя собственные библиотеки python, у вас есть следующие опции.
Собственные библиотеки python не понять схему файла gs://
.
Вы можете прочитать файл, используя Google Cloud Storage Client Libraries
, используя следующий фрагмент кода
from google.cloud import storage
def download_blob(bucket_name, source_blob_name, destination_file_name):
"""Downloads a blob from the bucket."""
# bucket_name = "your-bucket-name"
# source_blob_name = "storage-object-name"
# destination_file_name = "local/path/to/file"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)
blob.download_to_filename(destination_file_name)
print(
"Blob {} downloaded to {}.".format(
source_blob_name, destination_file_name
)
)
Фрагмент кода скопирован из: здесь
Вы можете прочитать о том, как установить SDK из здесь
**, или вы можете сделать это по-старому, скопировав файл на устройство и прочитав его оттуда. **
subprocess.run("gsutil", "cp" , "gs://movie_files_101/u.item", "/tmp/u.item")
With open("/tmp/u.item") as f: