Spark를 처음 사용하고 Wikipedia 덤프의 페이지 레코드를 RDD에로드하려고합니다.맞춤형 입력 리더기를 사용하십시오.
hadoop 스트리밍에 제공된 레코드 판독기를 사용했지만 사용법을 알 수 없습니다. 누구든지 다음 코드가 페이지 레코드가있는 멋진 RDD를 만들도록 도와 줄 수 있습니까?
import org.apache.hadoop.io.Text
import org.apache.hadoop.streaming.StreamXmlRecordReader
import org.apache.hadoop.mapred.JobConf
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WikiTest {
def main(args: Array[String]) {
// configuration
val sparkConf = new SparkConf()
.setMaster("local[4]")
.setAppName("WikiDumpTest")
val jobConf = new JobConf()
jobConf.set("input", "enwikisource-20140906-pages-articles-multistream.xml")
jobConf.set("stream.recordreader.class", "org.apache.hadoop.streaming.StreamXmlRecordReader")
jobConf.set("stream.recordreader.begin", "<page>")
jobConf.set("stream.recordreader.end", "</page>")
val sparkContext = new SparkContext(sparkConf)
// read data
val wikiData = sparkContext.hadoopRDD(
jobConf,
classOf[StreamXmlRecordReader],
classOf[Text],
classOf[Text])
// count rows
println(wikiData.count)
}
}
Spark는 StreamXmlRecordReader 사용을 거부합니다. 나는 다음과 같은 오류가 발생합니다 : 나는 Eclispse의 경고를 무시하고 어쨌든 prgramm를 시작하면
[error] found : Class[org.apache.hadoop.streaming.StreamXmlRecordReader (classOf[org.apache.hadoop.streaming.StreamXmlRecordReader])
[error] required: Class[_ <: org.apache.hadoop.mapreduce.InputFormat[?,?]]
[error] classOf[StreamXmlRecordReader]
은 내가 java.lang.ClassNotFoundException가를 기록했다.