新的堆栈溢出,所以希望这不是一个愚蠢的问题,但我在其他地方找不到答案。
我想创建一个在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,这样我就可以理解/编辑它,但无论哪种都可以。]