написать в Google Cloud Storage, используя искра к абсолютному пути - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь записать искровой фрейм данных в облачное хранилище Google. Этот фрейм данных имеет некоторые обновления, поэтому мне нужна стратегия разбиения. Так что мне нужно записать его в точный файл в GCS.

Я создал сеанс зажигания следующим образом

        .config("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")\
        .config("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")\
        .config("fs.gs.project.id", project_id)\
        .config("fs.gs.auth.service.account.enable", "true")\
        .config("fs.gs.auth.service.account.project.id",project_id)\
        .config("fs.gs.auth.service.account.private.key.id",private_key_id)\
        .config("fs.gs.auth.service.account.private.key",private_key)\
        .config("fs.gs.auth.service.account.client.email",client_email)\
        .config("fs.gs.auth.service.account.email",client_email)\
        .config("fs.gs.auth.service.account.client.id",client_id)\
        .config("fs.gs.auth.service.account.auth.uri",auth_uri)\
        .config("fs.gs.auth.service.account.token.uri",token_uri)\
        .config("fs.gs.auth.service.account.auth.provider.x509.cert.url",auth_provider_x509_cert_url)\
        .config("fs.gs.auth.service.account.client_x509_cert_url",client_x509_cert_url)\
        .config("spark.sql.avro.compression.codec", "deflate")\
        .config("spark.sql.avro.deflate.level", "5")\
        .getOrCreate())

и я пишу в GCS, используя

df.write.format(file_format).save('gs://'+bucket_name+path+'/'+table_name+'/file_name.avro')

теперь я вижу, что файл, написанный на GCP, находится в пути

gs: //bucket_name/table_name/file_name.avro/--auto назначенное имя -. Avro

я ожидаю, что файл будет записан как в hadoop, а конечный результат файла данных будет

гс: //bucket_name/table_name/file_name.avro

Может ли кто-нибудь помочь мне достичь этого?

1 Ответ

0 голосов
/ 23 апреля 2019

Похоже на ограничение стандартной библиотеки Spark. Может быть, этот ответ поможет .

Вы также можете проверить альтернативный способ взаимодействия с Google Cloud Storage из Spark, используя Соединитель облачного хранилища с Apache Spark .

...