创建一个谷歌云函数,根据文件名

时间:2018-11-24 01:48:05

标签: python node.js google-cloud-platform google-cloud-storage google-cloud-functions

新的堆栈溢出,所以希望这不是一个愚蠢的问题,但我在其他地方找不到答案。

我想创建一个在jsonl文件中运行的google cloud函数,当它到达存储桶并对其进行转换并将其保存在新存储桶中时。文件将按计划在每天下午3点到达gcs存储桶中,所以我很好,如果它只是按计划运行的google cloud函数,那会比较容易。这些文件也是.jsonl.gz文件,因此我不确定在尝试转换它们之前是否需要对它们进行解压缩。

jsonl文件基本上是一个json,其中每一行都是有效的json文件,例如:

{"index": 1, "met": "1043205", "no": "A"}
{"index": 2, "met": "000031043206", "no": "B"}
{"index": 3, "met": "0031043207", "no": "C"}

每个文件中约有500,000行。文件名类似于20181017_nyc_midtown.jsonl.gz。我有一个大查询表,其中包含每个文件名,然后是该文件的给定唯一ID。因此,例如, 20181017_nyc_midtown.jsonl.gz 的唯一标识可能是 001924 (您需要在表中查找的随机唯一标识)。我可以将大查询表改为json来进行查找,但随后我必须确保json已更新,而大查询表似乎是更好的选择。 大查询表如下所示:

+-------------------------------+----------+
|           Filename            | UniqueId |
+-------------------------------+----------+
| 20181017_nyc_midtown.jsonl.gz |   001924 |
+-------------------------------+----------+

如果这是文件20181017_nyc_midtown.jsonl.gz,且唯一ID为001924,我想向该jsonl中添加另一个具有唯一ID的列。该列将被添加到每一行,因此输出将被添加。

{"index": 1, "met": "1043205", "no": "A", "unique_id":001924}
{"index": 2, "met": "000031043206", "no": "B", "unique_id":001924}
{"index": 3, "met": "0031043207", "no": "C", "unique_id":001924}

我想将具有唯一ID的新jsonl文件保存到另一个存储桶(在同一项目中)。文件名将与输入文件名相同。

从理论上讲,这似乎是一个非常简单的概念/事情,即使我将其解释为令人困惑,但我只是想做到具体,并遵循发布准则。

[我对node或python中的解决方案很好,但我不知道节点,因此首选python,这样我就可以理解/编辑它,但无论哪种都可以。]

0 个答案:

没有答案