当前位置: 首页 > 知识库问答 >
问题:

在数据流中指定区域读取BigQuery Dataset python SDK

栾景胜
2023-03-14

我试图在DataFlow中读取bigquery数据集。它找不到我指定的bigquery数据集/表。

我的datalab vm、gcs bucket和bigquery dataset都位于欧洲西部2。

出于某种原因,它正在“美国”位置搜索数据集。

modules versions are apache-beam 2.5.0,google-cloud-dataflow 2.0.0, google-cloud-bigquery 0.25.0

搜索了文档,但无法找到为什么会发生这种情况的答案。

OUTPUT_DIR = "gs://some-bucket/some-folder/"

#dictionary of pipeline options
options = {
    "staging_location": "gs://some-bucket/some-folder/stage/"
    "temp_location": "gs://some-bucket/some-folder/tmp/"
    "job_name": job_name,
    "project": PROJECT,
    "runner": "DirectRunner",
    "location":'europe-west2',
    "region":'europe-west2',
}

#instantiate PipelineOptions object using options dictionary
opts = beam.pipeline.PipelineOptions(flags = [], **options)

#instantantiate Pipeline object using PipelineOptions
with beam.Pipeline(options=opts) as 
    outfile = "gs://some-bucket/some-folder/train.csv"
    (
      p | "read_train" >> beam.io.Read(beam.io.BigQuerySource(query = 
my_query, use_standard_sql = True))
        | "tocsv_train" >> beam.Map(to_csv)
        | "write_train" >> beam.io.Write(beam.io.WriteToText(outfile))
    )
print("Done")

HttpError:HttpError访问https://www.googleapis.com/bigquery/v2/projects/projects/queries/querystring:response:<{‘状态':'404',’内容-长度':'342','x-xss-保护':'0','x-content-type-options':'nosniff,'transfer-encoding':'chunked,'vary':'esf,'-content-encoding':'gzip,'-cache-control':'private,'date':'thu,2019年5月23日Origin“,”Content-Type“:”Application/JSON;Charset=UTF-8“}>,content<{”错误“:{”代码“:404,”消息“:”未找到:Dataset My_DataSet:视图在美国位置未找到“,”错误“:[{”消息“:”未找到:Dataset My_DataSet:视图在美国位置未找到“,”域“:”全局“,”原因“:”未找到“}],”状态“:”未找到“}}

共有1个答案

慕宏儒
2023-03-14

在Apache Beam 2.5.0 Python SDK中,还不支持非美国查询源。

看起来像是在Apache Beam 2.8.0 Python SDK中添加了支持[Release Notes,PR,JIRA]。

 类似资料:
  • 这是我的一个简单代码片段,它试图从使用者读取Avro泛型记录: 正如您所看到的,我可以记录模式,但不知道如何获取其数据值。 而在此对象中的架构和数据如下所示: {schema:{“type”:“record”,“name”:“user”,“namespace”:“confluent.kafka.example.avrospecific”,“fields”:[{“name”:“name”,“type

  • 我正在开发一个物联网应用程序,需要从PubSub主题读取流数据。我想使用Google云数据流SDK读取这些数据。我正在使用Java 1.8 我正在使用谷歌云平台的试用版。当我使用PubSubIO时。Read方法读取流数据时,我在日志文件中发现错误,我的项目没有足够的CPU配额来运行应用程序。 所以我想使用谷歌云数据流SDK读取流数据。 请有人告诉我在哪里可以找到使用Google Cloud Dat

  • 基本要求: 熟悉 C++ 编程。 确保下载 TensorFlow 源文件, 并可编译使用。 我们将支持文件格式的任务分成两部分: 文件格式: 我们使用 Reader Op来从文件中读取一个 record (可以使任意字符串)。 记录格式: 我们使用解码器或者解析运算将一个字符串记录转换为TensorFlow可以使用的张量。 例如, 读取一个 CSV 文件,我们使用 一个文本读写器, 然后是从一行文

  • 我使用Cosmos DB多区域(单区域写入)帐户。目前,它在美国东部和西部启用。写入区域位于美国西部。在美国东部和西部都部署了变更源监听器。 鉴于这种设置,我想了解更改提要是如何工作的? < li >更改摘要侦听器是否从其部署的区域接收更改摘要。例如,东方的听众从东方阅读,西方的听众从西方阅读。 或 我正在使用change feed处理器库读取change Feeds,代码如下:

  • 我想阅读父域()cookies 从 我可不想吃domain.com饼干 类似于下面的链接 从在子域更新上运行的应用程序访问父域Cookie:无法编辑Cookie。i、 e.无法设置cookie的域

  • 我正在尝试使用Spark.read.jdbc从Oracle数据库读取数据。如果我指定lowerbound、upperbound和numpartitions,最后一个分区可能会比executor内存大。有没有一种方法可以在不指定lowerbound和upperbound的情况下实现numpartitions(比如sqoop)?