我是新的Spark和希望添加hdfs数据使用Spark。假设我在bash中做了类似的事情,但是如果数据很大,则需要花费时间,因此希望使用相同的spark。如:
year=2016
for((month=1;month<10;month++))
do
tot1=$(hadoop fs -du -s /inputdata1/year=$year/month=0$month | awk '{SUM += $1} END {print SUM/(1024*1024*1024*1024)}')
tot2=$(hadoop fs -du -s /inputdata2/year=$year/month=0$month | awk '{SUM += $1} END {print SUM/(1024*1024*1024*1024)}')
tot3=$(hadoop fs -du -s /inputdata3/year=$year/month=0$month | awk '{SUM += $1} END {print SUM/(1024*1024*1024*1024)}')
tot4=$(hadoop fs -du -s /inputdata4/year=$year/month=0$month | awk '{SUM += $1} END {print SUM/(1024*1024*1024*1024)}')
tot=$(echo $tot1+$tot2+$tot3+$tot4|bc)
printf 'Total Data in month %d\t%.2f \n' "$month" "$tot"
done
2条答案
按热度按时间p5fdfcr11#
从查看sparkcontext的SparkAPI文档开始。
如果你想做的只是计算一个目录中的文件数,那么我认为这应该是可行的。。。
…请注意
sc.wholeTextFiles
返回一个RDD[String, String]
其中每对都有一个表单(文件名、文件内容)。从这里我们可以做很多事情来分析数据file-contents
.rqcrx0a62#
请不要将此答案标记为无效,我昨天加入了,无法添加评论。
你能更清楚地说明你想达到什么目的吗?
你想在spark中读取数据然后做什么?你有什么样的数据?
如果您希望输出如下?
试试下面的代码是否适合你。