[英]How can I increase parallelism with loading large XML file with spark-xml?
[英]How can I use Spark to transform a large text file for loading into a relational schema?
我正在使用以以下形式的key:value对布置的大型数据集。 每条新行都划定一条记录,并且数据集每行包含一个key:value对。
cat_1/key_1: a value
cat_1/key_2: a value
cat_2/key_3: a value
cat_1/key_1: another value
cat_2/key_3: another value
我的目标是将该文本文件转换为数据框,该记录的记录可以轻松地保存在表中。
在另一个编程范例中,我可能会遍历文件,并在遇到换行符时将记录写到另一个数据结构中。 但是,我正在寻找一种更惯用的方式在Spark中完成此任务。
在创建每行映射到line.split(": ")
的新RDD之后,我被Spark最好的方法用于处理\\n
作为记录定界符。
Spark每行创建一个新元素。 所以我不确定换行符是什么问题,但是您可以执行一些操作,例如将数据映射到案例类。 案例类定义表的架构。 非常简单。 以下本质上是对文档的重写。
case class Data(key: String, value: String)
// Read in data from file
val data = sc.textFile(file://C:/location/of/my/data.txt)
// Maps comma delimited pairs to caseclass and creates the RDD
val myData = data.map(_.split("\\,",-1)).map(p => Data(p(0), p(1)))
// To dataframe
val myDataAsDataFrame = myData.toDF()
// Register the table
myDataAsDataFrame.registerTempTable("tableName")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.