我在hdfs中有一个庞大的数据集。我需要把数据分块处理。
首先使用sql确定完整数据集中的行数是否可行:
select count(*) from my_table;
…然后用python把这个数字分成几个区间?
def intervals(parts, duration):
part_duration = duration / parts
return [(i * round(part_duration), (i + 1) * round(part_duration)) for i in range(parts)]
例如,如果我总共有一百万行:
intervals(3, 1000000)
这给了。。。
[(0, 333333), (333333, 666666), (666666, 999999)]
然后我可以使用sql获取这些特定的行号吗?
输入示例:
row Col1 Col2. Col3
1 a b c
2 a b c
3 a b c
4 a b c
5 a b c
6 a b c
预期产量:
返回区块1:
row Col1 Col2 Col3
1 a b c
2 a b c
返回区块2:
row Col1 Col2 Col3
3 a b c
4 a b c
返回块3:
row Col1 Col2 Col3
5 a b c
6 a b c
我不确定hive是否能够获取特定的行号,并根据hdfs对数据的分区方式,确保数据块是真正不同的。是否有某种方法可以确保返回的每个块都是唯一的,以便我可以处理每个块?
暂无答案!
目前还没有任何答案,快来回答吧!