程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'?

开发过程中遇到从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'的问题如何解决?下面主要结合日常开发的经验,给出你关于从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'的解决方法建议,希望对你解决从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'有所启发或帮助;

我正在尝试从 PySpark 查询 Bigquery 中的 __tableS__ 数据。我正在使用此代码来查询系统表

from pyspark.sql import SparkSession


spark = SparkSession.builder\
    .config('parentProject','my-parent-project')\
    .config('spark.jars.packages','com.Google.cloud.spark:spark-bigquery-with-dependencIEs_2.12:0.18.1')\
    .getorCreate()

spark.read.format('bigquery')\
            .option("credentials",my_key)\
            .option("project",'my-parent-project') \
            .option('table','my-dataset.__tableS__') \
            .load()

它一直工作到 2021/06/25。第二天,对于这个代码,我突然开始收到此错误消息

: com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.rpc.InternalException: com.Google.cloud.spark.bigquery.repackaged.io.grpc.StatusRuntimeException: INTERNAL: request Failed: internal error
at com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.rpc.APIExceptionFactory.createException(APIExceptionFactory.java:67)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.grpc.GrpcAPIExceptionFactory.create(GrpcAPIExceptionFactory.java:72)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.grpc.GrpcAPIExceptionFactory.create(GrpcAPIExceptionFactory.java:60)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.grpc.GrpcExceptionCallable$ExceptiontransformingFuture.onFailure(GrpcExceptionCallable.java:97)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.API.core.APIFutures$1.onFailure(APIFutures.java:68)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.common.util.concurrent.Futures$CallBACkListener.run(Futures.java:1074)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1213)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:983)
at com.Google.cloud.spark.bigquery.repackaged.com.Google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:771)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.stub.ClIEntCalls$GrpcFuture.setException(ClIEntCalls.java:563)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.stub.ClIEntCalls$UnaryStreamToFuture.onClose(ClIEntCalls.java:533)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.ClIEntCallimpl.cloSEObserver(ClIEntCallimpl.java:413)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.ClIEntCallimpl.access$500(ClIEntCallimpl.java:66)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.ClIEntCallimpl$ClIEntStreamListenerImpl$1StreamClosed.runInternal(ClIEntCallimpl.java:742)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.ClIEntCallimpl$ClIEntStreamListenerImpl$1StreamClosed.runInContext(ClIEntCallimpl.java:721)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at com.Google.cloud.spark.bigquery.repackaged.io.grpc.internal.serializingExecutor.run(serializingExecutor.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.scheduledThreadPoolExecutor$scheduledFutureTask.access$201(scheduledThreadPoolExecutor.java:180)
at java.util.concurrent.scheduledThreadPoolExecutor$scheduledFutureTask.run(scheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: com.Google.cloud.spark.bigquery.repackaged.com.Google.API.gax.rpc.AsyncTaskException: Asynchronous task Failed

(堆栈跟踪比这更长,如果需要的话,我会发布它的其余部分)。

Bigquery 有什么变化吗?错误消息对我进行故障排除不是很有帮助,有什么建议吗?要添加更多上下文,我可以使用相同的代码查询同一数据集中的其他表。

我通过 Spark 3.0.1 和 Bigquery 连接器 com.Google.cloud.spark:spark-bigquery-with-dependencIEs_2.12:0.18.1 观察到了这种行为。我在使用 Spark 2.4.3 和 Bigquery 连接器 com.Google.cloud.spark:spark-bigquery-with-dependencIEs_2.11:0.18.1

时也遇到过同样的行为

解决方法

请注意,__TABLES__ 不是实际的 BigQuery 表,而是其元数据的视图。解决此问题的一种方法是执行以下操作:

spark = SparkSession.builder\
    .config('parentProject','my-parent-project')\
    .config('viewsEnabled','true')\
    .config('materializationDataset',DATASET)
    .config('spark.jars.packages','com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.21.1')\
    .getOrCreate()

tables_df = spark.read.format('bigquery')\
            .option("credentials",my_key)\
            .load("SELECT * FROM my-project.my-dataset.__TABLES__")

大佬总结

以上是大佬教程为你收集整理的从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'全部内容,希望文章能够帮你解决从 PySpark 检索 __TABLES__ 时,BigQuery '内部:请求失败:内部错误'所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。