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

如何使用java Dataflow将csv文件导出到bigqery表?

司马庆
2023-03-14

我想从云桶中读取一个csv文件,并使用Java中的dataflow将其写入一个带有列的bigquery表。如何在写入BigQuery时将标题设置为csv文件?

共有1个答案

马航
2023-03-14

这里有两个问题需要解决

  1. 读取数据时跳过标头,并且
  2. 使用标头正确填充teh bigquery表列。

因为(1)截至2019年6月,这还没有在本地实现,尽管您可以尝试跳过标题行中列出的选项--云数据流可能吗?。对于(2)来说,最简单的方法是在主程序中读取CSV的第一行,并将构造函数中的列名列表传递给DoFn,该DoFn将CSV行转换为准备写入BigQuery的TableRow对象。

public void CsvToBigquery(csvInputPattern, bigqueryTable) {
  final String[] columns = readAndSplitFirstLineOfFirstFile(csvInputPattern);
  Pipeline p = new Pipeline.create(...);
  p
    .apply(TextIO.read().from(csvInputPattern)
    .apply(Filter.by(new MatchIfNonHeader())
    .apply(ParDo.of(new DoFn<String, TableRow>() {
             ... // use columns here to TableRows
           })
    .apply(BigtableIO.write().withTableId(bigqueryTable)...);
}
 类似资料:
  • 问题内容: 我需要使用Python脚本将PostgreSQL数据库中的表中的某些行导出到.csv文件: 但是当我运行脚本时,我得到了: 有谁知道可能出什么问题或给我小费吗? 问题答案: 该命令不是SQL命令,它是Postgres终端客户端 psql 专用的命令,不能在此上下文中使用。 使用代替,例如:

  • 问题内容: 我试图将使用以下查询找到的结果导出到我的桌面上的CSV中。 这是我第一次使用Elasticsearch和cURL,因此我对如何执行此操作感到困惑。 现在,当我运行此查询时,它将返回戴夫的姓名,姓氏,地址和性别,并且我想在运行查询时将结果放入桌面上的csv中。 我一直在阅读有关如何执行此链接的操作,但是我不确定如何使我的查询执行此操作-(https://docs.python.org/3

  • 问题内容: 我有一个在Amazon RDS中运行的mysql数据库,我想知道如何将整个表导出为csv格式。我目前在Windows上使用mysql服务器查询Amazon数据库,但是当我尝试运行导出时,我得到一个错误,可能是因为没有用于Amazon RDS的专用文件服务器。有什么解决办法吗? 问题答案: 大概您正在尝试通过查询从Amazon RDS数据库导出,这会引起这个确实常见的问题,请参阅例如将数

  • 如何将CSV文件导入MySQL表?我想把第一行数据用作列名。 我读到如何将CSV文件导入MySQL表?,但是唯一的答案是使用GUI而不是shell?

  • 在Vaadin 14+中,我正在创建网格,并希望用户有一个稳定/简单的方法将网格的内容导出到csv或Excel。要做到这一点,我感到惊讶的是,Vaadin似乎没有提供此功能,因此必须使用第三方开发插件(如https://Vaadin.com/directory/component/exporter/overview)。然而,这些插件有许多bug(例如不能将带有日期值的网格正确地导出到Excel等)