谷歌云存储加入多个csv文件

2023-11-24

我将数据集从 Google BigQuery 导出到 Google Cloud Storage,考虑到文件大小,BigQuery 将文件导出为 99 个 csv 文件。

然而,现在我想连接到我的 GCP 存储桶并使用 Spark 执行一些分析,但我需要将所有 99 个文件加入到一个大型 csv 文件中才能运行我的分析。

如何才能实现这一目标?


BigQuery 将导出的数据拆分为多个文件(如果是)大于1GB。但您可以将这些文件与gsutil工具, check 这个官方文档了解如何使用 gsutil 执行对象组合。

当 BigQuery 导出具有相同前缀的文件时,您可以使用通配符*将它们合并为一个复合对象:

gsutil compose gs://example-bucket/component-obj-* gs://example-bucket/composite-object

请注意,单个操作中可以组成的组件数量有限制(当前为 32 个)。

此选项的缺点是每个的标题行.csv文件将被添加到复合对象中。但你可以通过修改来避免这种情况jobConfig设置print_header范围 to False.

这是一个Python示例代码,但你可以使用任何其他 BigQuery 客户端库:

from google.cloud import bigquery
client = bigquery.Client()
bucket_name = 'yourBucket'

project = 'bigquery-public-data'
dataset_id = 'libraries_io'
table_id = 'dependencies'

destination_uri = 'gs://{}/{}'.format(bucket_name, 'file-*.csv')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)

job_config = bigquery.job.ExtractJobConfig(print_header=False)

extract_job = client.extract_table(
    table_ref,
    destination_uri,
    # Location must match that of the source table.
    location='US',
    job_config=job_config)  # API request

extract_job.result()  # Waits for job to complete.

print('Exported {}:{}.{} to {}'.format(
    project, dataset_id, table_id, destination_uri))

最后记得写一个空的.csv仅包含标题行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌云存储加入多个csv文件 的相关文章

  • Google Analytics“用户计数”与大查询“用户计数”不匹配

    我们的 Google Analytics 用户计数 与我们的大查询 用户计数 不匹配 我计算得正确吗 通常 GA 和 BQ 非常接近 尽管不完全一致 最近 GA 与 BQ 中的用户数并不一致 我们的 每个用户的会话数 通常非常正常分配 在过
  • 如何在 Google BigQuery 中创建临时表

    有没有办法通过以下方式在 Google BigQuery 中创建临时表 SELECT INTO
  • 使用python将数据写入谷歌云存储

    我找不到使用 python 将本地计算机中的数据集写入谷歌云存储的方法 我进行了很多研究 但没有找到任何与此相关的线索 需要帮助 谢谢 简单的例子 使用谷歌云 https googlecloudplatform github io goog
  • 保存到 parquet 文件时如何使用新的 Int64 pandas 对象

    我正在使用 Python Pandas 将数据从 CSV 转换为 Parquet 以便稍后将其加载到 Google BigQuery 中 我有一些包含缺失值的整数列 从 Pandas 0 24 0 开始 我可以将它们存储为 Int64 dt
  • Python BigQuery 超时确实很奇怪

    我正在构建一项将数据流式传输到 bigquery 的服务 如果我删除需要 4 5 分钟加载的部分 我正在预缓存一些映射 则以下代码可以完美运行 from googleapiclient import discovery from oauth
  • 允许在谷歌云存储上公开共享文件

    谷歌云存储允许用户检查 公开共享 存储管理器中的字段允许您直接共享数据的 URL 我正在使用谷歌应用程序引擎并将数据发送到存储 但我希望默认情况下公开共享它 我怎样才能做到这一点 他们的文档似乎没有提到任何关于此的内容 除了手动执行之外 我
  • Bigquery - json_array 来自字段的额外多个元素

    我的表有一个 JSON 字段 如下所示 每个条目中可以有任意数量的评论 entry 1234 comment 6789 seconds 1614864327 nanoseconds 606000000 message hello world
  • oauth2client.client.AccessTokenRefreshError: invalid_grant 仅在 Docker 中

    我有相同的代码 具有相同的 p12 文件 检查了 md5 和 相同的 account email 和相同的范围 可以在多台计算机上工作 但不能在任何工作计算机上的 Docker 容器中工作 我的代码片段如下 with open self p
  • 如何在 Google Storage Transfer 上创建 tsv 文件

    谷歌为其云服务提供了很棒的文档 但不幸的是没有人能理解其中的内容 他们的解释总是跳跃性的 让人们没有任何线索来完成哪怕是一个简单的任务 创建 tsv 文件应该是一个简单的任务 我尝试关注此页面中的所有内容创建 URL 列表 https cl
  • BigQuery 表中可以按小时进行分区吗?

    谷歌文档只讨论日常分区 但是模型中是否有任何东西阻碍人们将分区填充到具有其他时间段 例如 小时或周 的表中 在 小 表中进行分区是否有任何限制或缺点 现在only DAY支持分区表 不支持按小时或按月 有几个对新功能的功能请求 但没有实施时
  • 将带有变量的循环转换为 BigQuery SQL

    我有数千个脚本 其中包括循环数据集并使用变量进行累积 例如 assuming that ids is populated from some BQ table ids 1 2 3 4 5 var1 v1 initialize variabl
  • 将文件从远程服务器复制到谷歌云存储桶

    如何将文件从远程服务器复制到 Google 存储桶 例如 gcloud compute scp username server path to file gs my bucket 这个方法会报错 All sources must be lo
  • 如何在 .net 中为 Google 云存储签名 url

    我想知道如何使用 net中的谷歌云存储类生成signurl 我已经根据要求创建了字符串 GET 1388534400 bucket objectname 但我现在想用 p12 密钥签署这个 url 然后想让它变得 url 友好 该库没有显示
  • 未找到“google\appengine\CreateUploadURLRequest”类

    我正在使用谷歌云CORE PHP使用简单的 HTML 表单上传文件但我被困在CloudStorageTools班级 它会抛出连续的跟随错误 致命错误 类 找不到 google appengine api cloud storage Clou
  • 如何从 firebase 导出无崩溃的用户?

    我想将有关崩溃和无崩溃用户指标的数据保留在数据库中以供进一步分析 我已经将该项目链接到 BigQuery 但找不到计算方法无崩溃用户BigQuery 中包含的数据价值 是否可以以某种方式导出无崩溃的用户指标 这里是 Fabric Fireb
  • 从 pandas 数据帧创建 BigQuery 表,无需显式指定架构

    我有一个 pandas 数据框 想从中创建一个 BigQuery 表 我知道有很多帖子询问这个问题 但到目前为止我能找到的所有答案都需要明确指定每列的架构 例如 from google cloud import bigquery as bq
  • 使用 NodeJS 从 GCP 存储下载对象

    我在用着 google cloud 存储 https www npmjs com package google cloud storage从节点应用程序访问 Google Cloud Storage 存储桶内的对象 但我无法使其工作 我已在
  • Google Bigquery 命令行返回限制

    我刚刚升级了 bigquery 命令行程序 现在运行查询时返回的行数受到限制 限制似乎是 100 行 在升级之前 我能够返回数千行 我正在使用Debian 有没有办法扩大返回行的限制 如果我可以提供更多信息 请告诉我 Try the max
  • 大查询中有没有办法执行动态查询,例如sql server中的“EXEC”?

    我有一个包含 200 多个列名的表 这些列名是使用临时名称创建的 例如 custColum1 custColum200 我有一个映射表 其中包含 custColum1 custColumn200 的列表 它必须映射到该名称 例如 Table
  • 如何从@google-cloud/storage读取文件?

    我正在从我的存储桶中检索文件 我收到该文件并想要阅读其内容 但我不想将其下载到我的本地项目 我只想读取内容 获取数据并用它进行其他操作 我的代码 export const fileManager async gt try const sou

随机推荐