google-bigquery - 导入 BigQuery 时指定转义字符。 "Error: Data between close double quote (") 和字段分隔符。”

标签 google-bigquery

我正在尝试将大量 .csv 文件导入 Google BigQuery。

我的一个字符串列有时包含一个数组,其中包含用 \ 转义的双引号。的。例子:

... ,"{\"ex1\":\"somestuffhere\"\,\"ex2\":\"somestuffhere\"\,\"ex3\":\"somestuffhere\"}", ...

我相信这个问题是由 BigQuery 引起的,默认情况下期望双引号被另一个双引号转义 - "" .我已经尝试将不同的参数发送到 --quote论点,但它并没有像我希望的那样发挥作用。

我正在尝试的当前命令行加载命令:
bq load --noreplace --skip_leading_rows=1 --allow_jagged_rows='true' --ignore_unknown_values='true' --quote='"' --source_format=CSV TestDataset.cmdLineTest gs://s3_data_transfers/Events_10422/LIVE/* myschema.json
无论如何我可以让平台接受这些行吗?还是我被迫调查预处理步骤?该表将根据发送的新 csv 每天更新,因此理想情况下尽量将预处理步骤保持在最低限度。

谢谢!

最佳答案

我认为这个问题是由于 --quote你已经指出的论点。自 "是引用 CSV 数据部分的默认值,如果您的数据包含 " 则不连贯.我一直在测试一些类似的数据(使用 \" ),BigQuery 返回相同的错误:

Error: Data between close double quote (") and field separator.

对此的解决方案是指定 --quote flag 到另一个字符(这样,不连贯将被解决)。就我而言,它适用于 ' .以下命令对我有用:
bq --location=US load --autodetect --source_format=CSV --quote "'" MY_DATASET.MY_TABLE MY_CSV_FILE

确保您的数据不包含 ' , 否则您应该为该字符找到另一个字符或将其设置为空字符串,如文档所述。引用 this document有关此标志的详细信息。

关于google-bigquery - 导入 BigQuery 时指定转义字符。 "Error: Data between close double quote (") 和字段分隔符。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54364307/

相关文章:

sql - BigQuery 是否支持 "execute immediate"命令运行动态查询?

google-analytics - GA360 导出到 Bigquery

google-cloud-platform - BigQuery "This query will process 0 B when run"

google-bigquery - 权限错误,将表格从Google BigQuery导出到Google Cloud Storage

python - Google BigQuery API,如何设置destinationTable的字段类型?

firebase - 我应该什么时候为导出到 BigQuery 的 Firebase Analytics 数据运行每日 ETL 作业?

google-apps-script - 未找到 OAuth 客户端 - Google Apps 脚本 - BigQuery

java - 是否可以根据窗口元素的时间戳动态生成 BigQuery 表名?

regex - 如何将 YYYYMMDD 转换为 YYYY-MM-DDT00 :00:00+00:00 in BigQuery?

google-api - 如何使用带有 gsutil 的服务帐户上传到 CS + BigQuery