1
コードhereをScalaバージョンからPySparkバージョンに変更しようとしています。ここで私が使用しているコードです:私は取得していますHadoop Streamingを介してPySparkのXmlファイルを読む
conf = SparkConf().setAppName("Parse Xml File")
sc = SparkContext(conf = conf)
sqlContext = HiveContext(sc)
sc._jsc.hadoopConfiguration().set('stream.recordreader.class', 'org.apache.hadoop.streaming.StreamXmlRecordReader')
sc._jsc.hadoopConfiguration().set('stream.recordreader.begin', '<page>')
sc._jsc.hadoopConfiguration().set('stream.recordreader.end', '</page>')
xml_sdf = sc.newAPIHadoopFile(xml_data_path,
'org.apache.hadoop.streaming.StreamInputFormat',
'org.apache.hadoop.io.Text',
'org.apache.hadoop.io.Text')
print("Found {0} records.".format(wiki_xml_sdf.count()))
sc.stop()
エラーは次のとおりです。私はそれを動作させるために使用できるさまざまな入力フォーマット/設定が
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.newAPIHadoopFile.
: java.lang.ClassCastException: org.apache.hadoop.streaming.StreamInputFormat cannot be cast to org.apache.hadoop.mapreduce.InputFormat
ありますか?
。私は基礎となるファイルが1行に1つの文書で分割されているとは思わない。これはspark-xmlが動作するために必要となるだろう。 – John
spark-xmlは別々の行にドキュメントを必要としないので、大きな1行のファイルを作成することができます。やってみて :-) – Mariusz