pti*_*obj 5 hadoop scala mapreduce apache-spark
在Spark中,可以设置一些hadoop配置设置,例如
System.setProperty("spark.hadoop.dfs.replication", "1")
Run Code Online (Sandbox Code Playgroud)
这样做,复制因子设置为1.假设是这种情况,我认为这种模式(在常规的hadoop配置属性中加上"spark.hadoop.")也适用于textinputformat.record.delimiter:
System.setProperty("spark.hadoop.textinputformat.record.delimiter", "\n\n")
Run Code Online (Sandbox Code Playgroud)
然而,似乎火花只是忽略了这个设置.我是否textinputformat.record.delimiter以正确的方式设置?是否有更简单的方法来设置textinputformat.record.delimiter.我想避免自己写InputFormat,因为我真的只需要获得由两个换行符分隔的记录.
我使用以下函数使用普通的未压缩文件.
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.io.Text
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat
def nlFile(path: String) = {
val conf = new Configuration
conf.set("textinputformat.record.delimiter", "\n")
sc.newAPIHadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text], conf)
.map(_._2.toString)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4803 次 |
| 最近记录: |