因为我们不能直接从Json文件读取,所以我使用的是.txt文件。 好像有更多的元素被“,”分开。你知道吗
[
{
"Item_Identifier": "FDW58",
"Outlet_Size": "Medium"
},
{
"Item_Identifier": "FDW14",
"Outlet_Size": "Small"
},
]
我想数一数元素的数目,这里我得到2。 问题是我不能将文本分割成以逗号“,”分隔的元素。 即使我把每一行都转换成json格式,我也能单独得到它。你知道吗
lines = p | 'receive_data' >> beam.io.ReadFromText(
known_args.input)\
| 'jsondumps' >> beam.Map(lambda x: json.dumps(x))\
| 'jsonloads' >> beam.Map(lambda x: json.loads(x))\
| 'print' >> beam.ParDo(PrintFn()) \
.json
文件只是一个文本文件,其内容是JSON可解析格式的。你知道吗JSON无效,因为它有尾随逗号。这应该起作用:
我不认为这是一个安全的方法。我没有使用pythonsdk(我使用java),但是java端的
io.TextIO
非常清楚,它将发出一个PCollection,其中每个元素都是源文件的一行输入。分层数据格式(json、xml等)不适合以这种方式拆分。你知道吗如果文件的格式和包含的json一样好,而且没有嵌套,那么您就可以不必担心:
}
的行不过,为了更广泛地与json集成,我们采用了不同的方法:
MatchResult
获取ReadableFile
实例并通过该实例访问文件我的理解是,并不是所有的文件格式都适合分布式处理器。例如,Gzip不能很容易地被“分割”或分块。与JSON相同。CSV有一个问题,即值是无意义的,除非你手头上还有开头行。你知道吗
相关问题 更多 >
编程相关推荐