将数据加载到 BigQuery 时忽略空值
ignore null values when loading data into BigQuery
我正在将数据加载到 bigquery 中,当我从 csv 上传数据时,数据应该是有序的,但是一旦加载,它就会在 bigquery 中打乱顺序,如下所示,
actual table:这应该是 bigquery
id
name
location
1
aaa
bbbb
2
ccc
dddd
3
eeee
4
fff
gggg
已上传table:但在我从 csv 上传到 bigquery
后,它以下面的格式更新了
id
name
location
3
null
eeee
2
ccc
dddd
1
aaa
bbbb
4
fff
gggg
即使我使用 pandas.sort_values(by='id'),我也没有按正确的顺序得到 table,它被重新洗牌,不知道基于什么。
如何 changes/steps 将实际的 table 上传到 bigquery 中,因为它采用相同的格式并在将数据加载到 bigquery 中时忽略空值?
提前致谢
BigQuery 的一个非常重要的方面是
If an ORDER BY clause is not present, the order of the results of a query is not defined
(ref here)
如果你想按你的意愿显示行,只需添加一个ORDER BY
子句:
ORDER BY `id`
至于忽略 NaN 值,只需在使用 to_gbq
之前用 .notna()
过滤数据框。
补充Cylldby
答案。如果您仍然需要该原始订单,您只需添加一个名为 index
的列并将数据框中的 index
数据填充到您的 table (或工作温度 table )
df['index_col'] = df.index
注意:如果有多个文件,您还可以设置数据帧块的自定义索引。有关更多信息,请参阅 探索索引重新排序。
因此,在您的 BigQuery table 上,您可以按 index_col
进行排序并保留从您的文件上传的原始订单。
我正在将数据加载到 bigquery 中,当我从 csv 上传数据时,数据应该是有序的,但是一旦加载,它就会在 bigquery 中打乱顺序,如下所示,
actual table:这应该是 bigquery
id | name | location |
---|---|---|
1 | aaa | bbbb |
2 | ccc | dddd |
3 | eeee | |
4 | fff | gggg |
已上传table:但在我从 csv 上传到 bigquery
后,它以下面的格式更新了id | name | location |
---|---|---|
3 | null | eeee |
2 | ccc | dddd |
1 | aaa | bbbb |
4 | fff | gggg |
即使我使用 pandas.sort_values(by='id'),我也没有按正确的顺序得到 table,它被重新洗牌,不知道基于什么。
如何 changes/steps 将实际的 table 上传到 bigquery 中,因为它采用相同的格式并在将数据加载到 bigquery 中时忽略空值?
提前致谢
BigQuery 的一个非常重要的方面是
If an ORDER BY clause is not present, the order of the results of a query is not defined (ref here)
如果你想按你的意愿显示行,只需添加一个ORDER BY
子句:
ORDER BY `id`
至于忽略 NaN 值,只需在使用 to_gbq
之前用 .notna()
过滤数据框。
补充Cylldby
答案。如果您仍然需要该原始订单,您只需添加一个名为 index
的列并将数据框中的 index
数据填充到您的 table (或工作温度 table )
df['index_col'] = df.index
注意:如果有多个文件,您还可以设置数据帧块的自定义索引。有关更多信息,请参阅
因此,在您的 BigQuery table 上,您可以按 index_col
进行排序并保留从您的文件上传的原始订单。