Отправка паркетных столов в Google Cloud Storage - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь отправить свои таблицы в Google Cloud Storage. Когда я пытался запустить свой файл кода, я столкнулся с ошибкой. Поэтому я искал в Интернете, но не смог найти никакого решения по этому поводу.

Это часть моего кода:

client = storage.Client(project="XXX")
    bucket = client.get_bucket("XXX")

    logging.error("something")
    ##something
    for i in addFileNameSts:
        blob = bucket.blob("XXX/{}".format(i))
        blob.upload_from_filename("C:/XXX/parquet/parquet_XXX_XXX/{}".format(i))
    ##something
    for i in addFileNameParo:
        blob = bucket.blob("XXX/{}".format(i))
        blob.upload_from_filename("C:/XXX/parquet/parquet_XXX_XXX/{}".format(i))

    sc._jsc.hadoopConfiguration().set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
    sc._jsc.hadoopConfiguration().set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")
    sc._jsc.hadoopConfiguration().set("fs.gs.project.id", "XXX")
    sc._jsc.hadoopConfiguration().set("google.cloud.auth.service.account.enable", "true")
    sc._jsc.hadoopConfiguration().set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
    sc._jsc.hadoopConfiguration().set("google.cloud.auth.client.id",
                                      "XXX.apps.googleusercontent.com")
    sc._jsc.hadoopConfiguration().set("google.cloud.auth.client.secret", "XXX")

    logging.error("something")
    XXXFeather.select(XXX.XXX.cast(DecimalType(20, 0)),

    XXXFeather.XXX.cast(StringType())).write.format("parquet").mode(
        'overwrite').parquet("gs://XXX/XXX")

И я получил такую ​​ошибку:

Py4JJavaError: An error occurred while calling o386.parquet. : java.lang.NoClassDefFoundError: com/google/common/flogger/GoogleLogger

at com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystemBase.<clinit>(GoogleHadoopFileSystemBase.java:145)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:2134)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2099)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
at org.apache.spark.sql.execution.datasources.DataSource.planForWritingFileFormat(DataSource.scala:424)
at org.apache.spark.sql.execution.datasources.DataSource.planForWriting(DataSource.scala:524)
at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:290)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:271)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:229)
at org.apache.spark.sql.DataFrameWriter.parquet(DataFrameWriter.scala:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.google.common.flogger.GoogleLogger
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
30 more

Я использую ОС Windows 10, я добавил JAR-файл gs-connect Hadoop в файл Spark / JAR. Итак, что я могу сделать, чтобы решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...