在spark中设置textinputformat.record.delimiter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在spark中设置textinputformat.record.delimiter相关的知识,希望对你有一定的参考价值。

在Spark中,可以设置一些hadoop配置设置,例如,

System.setProperty("spark.hadoop.dfs.replication", "1")

这有效,复制因子设置为1.假设是这种情况,我认为这种模式(在常规hadoop配置属性中加上“spark.hadoop。”)也适用于textinputformat.record.delimiter:

System.setProperty("spark.hadoop.textinputformat.record.delimiter", "

")

然而,似乎火花只是忽略了这个设置。我是否以正确的方式设置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", "
")
    sc.newAPIHadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text], conf)
      .map(_._2.toString)
}

以上是关于在spark中设置textinputformat.record.delimiter的主要内容,如果未能解决你的问题,请参考以下文章

在 Spark 中设置“spark.memory.storageFraction”不起作用

在 spark textarea 中设置图像样式

Spark 和 Amazon S3 未在执行程序中设置凭证

无法在 Jupyter notebook-anaconda 中设置 spark home

如何在 spark-shell 中设置 aws 访问密钥和 aws 密钥

在“spark-defaults.conf”中设置属性“spark.sql.hive.metastore.jars”后出现异常