我正在研究Spark的文件分析器,它基本上可以一次讀取和行,並將所有這些行作爲單行放在數據框中。
我知道我需要使用InputFormat
來嘗試和指定,但我無法在Python中找到一個很好的指導。
有沒有一種在Python中指定自定義InputFormat
的方法,還是我需要將它創建爲一個scala文件,然後在中指定jar?在Pyspark中使用Hadoop InputFormat
0
A
回答
0
您可以直接在Pyspark上使用InputFormats。
從documentation報價,
PySpark也可以讀取任何Hadoop的InputFormat或寫任何的Hadoop OUTPUTFORMAT,對於「新」與「舊」的Hadoop MapReduce的的API。
傳遞HadoopInputFormat
類的任何的pyspark.SparkContext
作爲適合這些方法中,
要閱讀n行,可以使用org.apache.hadoop.mapreduce.lib.NLineInputFormat
作爲具有newAPI方法的HadoopInputFormat類。
0
我不能找到一個很好的指南,這在Python
在Spark文檔,在「保存和加載其他Hadoop的輸入/輸出格式」中,有一個Elasticsearch例如+鏈接到HBase的例。
可以在時間n行基本上都看過......我知道我需要使用InputFormat嘗試和指定
有專門爲NLineInputFormat
。
這是一些Scala代碼一個粗略的翻譯我從NLineInputFormat not working in Spark
def nline(n, path):
sc = SparkContext.getOrCreate
conf = {
"mapreduce.input.lineinputformat.linespermap": n
}
hadoopIO = "org.apache.hadoop.io"
return sc.newAPIHadoopFile(path,
"org.apache.hadoop.mapreduce.lib.NLineInputFormat",
hadoopIO + ".LongWritable",
hadoopIO + ".Text",
conf=conf).map(lambda x : x[1]) # To strip out the file-offset
n = 3
rdd = nline(n, "/file/input")
,並把所有的線條爲單排的一個數據幀
隨着NLineInputFormat
,RDD中的每個字符串實際上都是新行分隔的。例如,你可以用rdd.map(lambda record : "\t".join(record.split('\n')))
來製作一行。
相關問題
- 1. 在Hadoop中自定義InputFormat
- 2. Excel的Hadoop InputFormat
- 3. Hadoop的DynamoDB InputFormat
- 4. 定製INputFormat,Hadoop的
- 5. Hadoop MapReduce InputFormat已棄用?
- 6. 定製InputFormat,hadoop C++管道
- 7. Hadoop中有多少種InputFormat類型?
- 8. Spark與Hadoop InputFormat混淆整合
- 9. 對於InputFormat的默認值,Hadoop ClassCastException
- 10. Hadoop 2:使用自定義InputFormat時的空結果
- 11. InputFormat
- 12. 如何覆蓋InputFormat和OutputFormat在hadoop應用程序
- 13. 在hadoop中處理protobufs的自定義inputformat 0.20
- 14. 如何使用Hadoop InputFormats在Apache Spark中?
- 15. 在Hadoop和紗線上安裝pyspark
- 16. 通過Hadoop配置對象從InputFormat返回值
- 17. Hadoop hive serde - 輸入格式必須實現InputFormat
- 18. Ozzie Inputformat MapReduce API
- 19. 自定義InputFormat與蜂巢
- 20. 爲什麼Hadoop不尊重在pyspark中設置的'spark.hadoop.fs'屬性?
- 21. Hadoop中的MapReduce創建自定義InputFormat和RecordReader對於二進制文件
- 22. Hadoop:使用壓縮NLineInputFormat?
- 23. 在Hadoop中使用DBOutputFormat
- 24. 在Hadoop中使用CombineFileInputFormat
- 25. 在Java中使用Hadoop
- 26. 在Hadoop中使用加密
- 27. 在Hadoop中使用RecordReader
- 28. 在Hadoop中使用MapFileOutputFormat
- 29. PySpark在Eclipse:使用PyDev的
- 30. 如何在Pyspark中使用Scala類
'hadoopFile'方法是應該用來讀取文件的內容,RDD方法不提供輸入URI參數。 –
我其實不知道如何使用RDD方法...我正在閱讀源代碼,並且這兩種方法都返回RDD的... –
是的,這些RDD方法假定文件已被sc讀取,使用接受URI的'addFile()'方法。我在上下文中添加了這些方法。 – franklinsijo