我们得到了很多手册文件,在处理数据框之前,我们需要验证一些数据类型。有人可以建议我如何继续执行此要求。基本上需要编写一个spark通用/通用程序,该程序应该适用于许多文件。如果可能的话,请发送有关此电子邮件ID的更多详细信息以及pathirammi1@gmail.com。
答案 0 :(得分:0)
想知道您的文件是否包含分隔符分隔的记录(例如csv文件)。如果是,则可以很好地将其读取为文本文件,并根据记录分割和定界符并对其进行处理。
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
object RDDFromCSVFile {
def main(args:Array[String]): Unit ={
def splitString(row:String):Array[String]={
row.split(",")
}
val spark:SparkSession = SparkSession.builder()
.master("local[1]")
.appName("SparkByExample")
.getOrCreate()
val sc = spark.sparkContext
val rdd = sc.textFile("randomfile.csv")
val rdd2:RDD = rdd.map(row=>{
val strArray = splitString(row)
val field1 = strArray(0)
val field2 = strArray(1)
val field3 = strArray(3)
val field4 = strArray(4)
// DO custom code here and return to create RDD
})
rdd2.foreach(a=>println(a.toString))
}
}
如果您有非结构化数据,则应使用以下代码
import org.apache.spark.sql.SparkSession
object RDDFromWholeTextFile {
def main(args:Array[String]): Unit = {
val spark:SparkSession = SparkSession.builder()
.master("local[1]")
.appName("SparkByExample")
.getOrCreate()
val sc = spark.sparkContext
val rdd = sc.wholeTextFiles("alice.txt")
rdd.foreach(a=>println(a._1+"---->"+a._2))
}
}
希望这会有所帮助! 谢谢, Naveen