我的文件夹中有3个日志文件.喜欢
foldera = emplog,deptlog,companylog
folderb = emplog,deptlog,companylog
folderc = emplog,deptlog,companylog
Run Code Online (Sandbox Code Playgroud)
我有3个diff scala程序文件来从每个文件中提取数据.
employee.scala
department.scala
companylog.scala
Run Code Online (Sandbox Code Playgroud)
他们每个人的代码如下.
我想结合所有这些文件并以并行方式执行它们.
package com.sample
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD.rddToPairRDDFunctions
import org.apache.spark.sql.SQLContext
import org.apache.log4j.{Level, Logger}
object logparser {
def main(args: Array[String]) = {
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)
//Start the Spark context
val conf = new SparkConf()
.setAppName("Parser")
.setMaster("local")
val sc = new SparkContext(conf)
val sqlContext= new SQLContext(sc)
val test = sc.wholeTextFiles("C:\\mkdir\\*\\*")
.map{l =>
if(l._1.endsWith("emplog.txt")){
empparser(l._2,sc,sqlContext)
}
l
}
.foreach{println}
}
def empparser(record:String,sc:SparkContext,sqlContext:SQLContext) = {
val emppattern="""[(](\d+)[)]\s([\w\s._]{30})\s+""".r
import …Run Code Online (Sandbox Code Playgroud)