如何加载位于US / EU之外的bigquery数据?

时间:2019-07-01 09:10:40

标签: scala apache-spark google-bigquery

我正在尝试使用spark加载和写入bigquery表,但是如果不在US / EU中,则无法加载或写入任何数据。我的数据当前位于asia-east中。

我已经尝试了以下库 samelamin/spark-bigqueryspotify/spark-bigqueryBigqueryconnector with Spark (bigdataoss),甚至是Beta GoogleCloudPlatform/spark-bigquery-connector。据我所知,使用前三个库将无法工作,因为它无法根据jobId查找工作,并且将显示illegalError to StopWatch(),除非从dataproc修复了依赖关系,否则无法修复依赖关系。使用beta连接器将显示以下

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)

此代码用于beta连接器。

 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]
  }

请注意,当我的表格位于美国时,上述所有库都可以正常工作。

0 个答案:

没有答案