hadoop - 如何将spark/hadoop任务的输入设置为一系列文件

标签 hadoop apache-spark

我有一个日志系统,日志以时间戳命名。

例如:

logs/2015/05/08/21
logs/2015/05/08/22
logs/2015/05/08/23
logs/2015/05/09/00
logs/2015/05/09/01
logs/2015/05/09/02
logs/2015/05/09/04
logs/2015/05/09/05

现在我需要选择一系列目录作为我任务的输入。

例如(注意05/09/03少了,这是正常的)

logs/2015/05/08/22
logs/2015/05/08/23
logs/2015/05/09/00
logs/2015/05/09/01
logs/2015/05/09/02
logs/2015/05/09/04

如何设置文件输入路径?我知道很容易获得从 08/22 到 09/04 的文件范围,但我怎么知道哪个文件丢失了?

最佳答案

SparkContext.textFile() 将采用文件系统 glob 和逗号分隔的路径。因此,您可以:

val logLines = sc.textFile("logs/*/*/*/*")

或者你可以这样做:

val logLines = sc.textFile("logs/2015/05/08/22,logs/2015/05/08/23,logs/2015/05/09/00,logs/2015/05/09/01,logs/2015/05/09/02,logs/2015/05/09/04"

关于hadoop - 如何将spark/hadoop任务的输入设置为一系列文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30137532/

相关文章:

hadoop - 在巨大的字符串列表上进行文本挖掘

java - 将 Hadoop 输出存储到本地 mongodb

hadoop - Hive - 数组中相同的记录序列

arrays - Spark 卡拉: Convert Array of Struct column to String column

scala - Spark : unpersist RDDs for which I have lost the reference

elasticsearch - Python spark Dataframe 到 Elasticsearch

sql - 配置单元查询错误

bash - 我如何找到在 Linux 中定义环境变量的位置

scala - RDD中是否有任何 Action 保持顺序?

scala - IntelliJ : Cannot open SBT Project: jansi 1. 11 错误