Я пытаюсь загрузить и написать таблицу больших запросов, используя spark, однако я не могу ни загрузить, ни записать данные, если они не находятся в США / ЕС.Мои данные в настоящее время находятся в asia-east
.
. Я опробовал следующие библиотеки samelamin/spark-bigquery
, spotify/spark-bigquery
, Bigqueryconnector with Spark (bigdataoss)
и даже бета-версию GoogleCloudPlatform/spark-bigquery-connector
.Использование первых 3 библиотек не будет работать, так как не может найти работу на основе jobId и покажет illegalError to StopWatch()
, насколько я знаю, зависимость не может быть исправлена, если она не исправлена из dataproc.Использование бета-коннектора показывает следующее
io.grpc.StatusRuntimeException: UNAVAILABLE: Policy checks are unavailable.
com.google.api.gax.rpc.UnavailableException: io.grpc.StatusRuntimeException: UNAVAILABLE: Policy checks are unavailable.
at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:69)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:72)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:60)
Этот код предназначен для бета-коннектора.
def loadBQTable[T](implicit bigQueryTableInfo: BigQueryTableInfo[T], encoder: Encoder[T]): Dataset[T] = {
val df = spark.read.bigquery("playground_asia.table_to_load")
println("df: " + df) // Returns the table schema
println("=================")
println("collect: " + df.collect()) // Returns an error if its from asia
println("show: " + df.show())
df.as[T]
}
Обратите внимание, что все вышеперечисленные библиотеки работают хорошо, когда моя таблица находится в США.