使用“总计”信息删除 csv 文件中的最后一行
Posted
技术标签:
【中文标题】使用“总计”信息删除 csv 文件中的最后一行【英文标题】:Remove last lines in csv file with "Totals" info 【发布时间】:2017-07-06 20:33:20 【问题描述】:我有一个大的 csv 文件,我正在使用以下示例格式将其保存到 Google Cloud Storage:
id,revenue
1,100
2,100
...
Totals
All,12000
或者:
title,profit
titanic,200
avatar,400
fox total,600
paramount total,400
grand total,1000
我希望能够删除总计之后(包括总计)的所有行,因为这不是 csv 文件中真正有效的信息(它是数据下方 csv 的更多汇总信息)。
有没有办法删除它?目前,我们将 csv 文件保存到 Google Cloud Storage,然后通过 Big Query 中的 csv-import 直接导入。也许,当通过 BigQuery 或类似的方式导入 csv 时,有一种方法可以将行号附加到 csv 文件中,所以我们可以在最后执行删除语句?
【问题讨论】:
【参考方案1】:如果在导入后删除 MAX() 行怎么办?
#standardSQL
DELETE
FROM `project.dataset.table`
WHERE revenue = (
SELECT revenue
FROM `project.dataset.table`
ORDER BY taxi_trips DESC
LIMIT 1
)
或者选择 id "All":
#standardSQL
DELETE
FROM `project.dataset.table`
WHERE id = "All"
【讨论】:
我们怎么知道max_row
?如果没有自动递增的 ID 怎么办(上面修改过的问题)。另外,id 通常不是“All”,这只是一个例子。
如果是所有正数相加的总和,那么它必须是最大的数 - 或者不是?
不,不是小计或记录计数。也许更直接的问题是:有没有办法使用 BigQuery 将行号添加到 csv 导入中?另外,这不是常见的情况吗(我看到大约 1/3 的 csv/excel 文件在底部显示总计信息,并且几乎总是显示任何财务信息。)
没有办法做到这一点,但你可以file a feature request。
@ElliottBrossard 谢谢 Elliott,我会加一张票。以上是关于使用“总计”信息删除 csv 文件中的最后一行的主要内容,如果未能解决你的问题,请参考以下文章