小编ang*_*bot的帖子

Bigquery 日期时间格式 csv 到 bigquery YYYY-MM-DD HH:MM[:SS[.SSSSSS]]

阅读许多日期时间格式问题,但找不到适合的问题。- 显然 - 已经尝试谷歌这个。

我在上传到 bigquery 以创建新表的 csv 文件上有一些日期时间信息。BQ 指定任何日期时间列的格式必须是YYYY-MM-DD HH:MM:SS.

他们还举了个例子:

Event            | UNIX      | Datetime String
---------------------------------------------------------
"Neil Armstrong  | -14182916 | 1969-07-20 20:18:04
sets foot on     |           | 1969-07-20 20:18:04 UTC
the moon"        |           | 1969-07-20T20:18:04
Run Code Online (Sandbox Code Playgroud)

但是,当我将日期时间列格式化为YYYY-MM-DD HH:MM:SSexcel 并将该 csv 上传到 BQ 时,我收到错误消息:

Errors:
mediaupload-snapshot: CSV table encountered too many errors, giving up. 
Rows: 1; errors: 1. (error code: invalid)
query: Could not parse '2017/11/22 14:47:23 SGT' as a timestamp. 
Required …
Run Code Online (Sandbox Code Playgroud)

csv datetime google-bigquery

6
推荐指数
1
解决办法
1万
查看次数

BigQuery - 正则表达式在已知字符串之后匹配模式(积极的后向替代)

我需要提取已知字符串后的 8 位数字:

| MyString                     | Extract: | 
| ---------------------------- | -------- | 
| mypasswordis 12345678        | 12345678 | 
| # mypasswordis 12345678      | 12345678 | 
| foobar mypasswordis 12345678 | 12345678 |
Run Code Online (Sandbox Code Playgroud)

我可以使用正则表达式来做到这一点,例如:

(?<=mypasswordis.*)[0-9]{8})
Run Code Online (Sandbox Code Playgroud)

但是,当我想在 BigQuery 中使用REGEXP_EXTRACT命令执行此操作时,收到错误消息“无法解析正则表达式:无效的 perl 运算符:(?<”。

我搜索了re2 库,发现似乎没有与积极向后查找等效的东西。

有什么办法可以使用其他方法来做到这一点吗?就像是

SELECT REGEXP_EXTRACT(MyString, r"(?<=mypasswordis.*)[0-9]{8}"))
Run Code Online (Sandbox Code Playgroud)

regex sql re2 google-bigquery regex-lookarounds

2
推荐指数
1
解决办法
7123
查看次数

标签 统计

google-bigquery ×2

csv ×1

datetime ×1

re2 ×1

regex ×1

regex-lookarounds ×1

sql ×1