gpt4 book ai didi

google-bigquery - BigQuery 加载 - 控制字符作为分隔符

转载 作者:行者123 更新时间:2023-12-01 07:21:34 25 4
gpt4 key购买 nike

我们有文件要加载,其中字段值由“单位分隔符”分隔,0x1f
根据 doc ,如果不可打印,则应使用 UTF-8 编码。

使用 bq CLI,我尝试将 -F 参数与 U+001F 一起传递,但无济于事:BigQuery 错误在加载操作中:字段分隔符必须是单个字符,找到:“U+001F”
0x1F 或 `\x1f,带或不带引号都没有运气。

我的编码错误还是 bq 或 API 中的错误?

编辑:
与资源管理器一起玩后发现它是不喜欢分隔符的 API。除了可打印的分隔符,您还可以使用 \t 以及未记录的 \b (退格)和 \f (表单域)。< br/>tab 可以是自由格式文本字段中的有效用户输入字符,因此我们需要使用控制字符 (从 'unit sep' 转换后)

EDIT2::
请注意,作为分隔符的 \f 可以直接通过 API 正常工作,但不能通过 bq CLI(Field delimiter 必须是单个字符,找到:"\f")。

最佳答案

实际上,由于 GCP 支持,这适用于 Linux:

bq load --autodetect --field_delimiter=$(printf '\x1f') [DATASET].[TABLE] gs://[BUCKET]/simple.csv

在 Windows 上,在命令行上返回/生成控制字符并不是那么简单。使用 PowerShell 会更容易。

我同意 @Felipe,这目前是 bq CLI 工具中的一个限制,但可以通过.decode('utf-8') 以字节为单位的参数,这样

 --field_delimiter=\x1f 

可以在任何平台上按原样工作。

希望 bq CLI 团队 能够考虑改进。

关于google-bigquery - BigQuery 加载 - 控制字符作为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54485941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com