我2 GB在我的数据中有数据HDFS.
是否可以随机获取数据.就像我们在Unix命令行中所做的那样
cat iris2.csv |head -n 50
Via*_*nov 34
本土头
hadoop fs -cat /your/file | head
这里效率很高,因为只要头部读完所有线条,猫就会关闭溪流.
为了获得尾部,hadoop中有一个特殊的有效命令:
hadoop fs -tail /your/file
不幸的是,它返回数据的最后一千字节,而不是给定数量的行.
您也可以在 Hadoop 中使用 head 命令!语法是
hdfs dfs -cat <hdfs_filename> | head -n 3
这将只打印文件中的三行。
Linux上的head和tail命令分别显示前10行和后10行.但是,这两个命令的输出不是随机采样的,它们的顺序与文件本身的顺序相同.
Linux shuffle  - shuf命令帮助我们生成输入行的随机排列,并将其与Hadoop命令结合使用会有所帮助,如下所示:
$ hadoop fs -cat <file_path_on_hdfs> | shuf -n <N>
因此,在这种情况下,如果iris2.csv是HDFS上的文件,并且您希望从数据集中随机抽样50行:
$ hadoop fs -cat /file_path_on_hdfs/iris2.csv | shuf -n 50
注意:sort也可以使用Linux 命令,但shuf命令更快,并且可以更好地随机采样数据.