我正在研究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. 定製INputFormat,Hadoop的
- 3. Hadoop MapReduce InputFormat已棄用?
- 4. 對於InputFormat的默認值,Hadoop ClassCastException
- 5. 在hadoop中處理protobufs的自定義inputformat 0.20
- 6. Hadoop hive serde - 輸入格式必須實現InputFormat
- 7. 自定義InputFormat與蜂巢
- 8. Hadoop:使用壓縮NLineInputFormat?
- 9. 在Hadoop中使用加密
- 10. 無法在PySpark中使用StructField
- 11. 在pyspark中使用itertools.groupby,但失敗
- 12. 使用python導入pyspark錯誤Pyspark 3.5.1
- 13. 創建一個沒有輸入數據的自定義生成器Hadoop InputFormat
- 14. PySpark:使用條件
- 15. 如何使用pyspark
- 16. 覆蓋使用pyspark
- 17. pyspark:使用JavaObject StructType
- 18. 通過Hadoop Streaming閱讀PySpark中的Xml文件
- 19. 如何使用Hadoop Streaming在本地Hadoop集羣中運行MRJob?
- 20. 在Hadoop 2.7.1羣集中使用Spark 1.6.2 for Hadoop 2.6.0的問題
- 21. 的InvocationTargetException在使用Hadoop
- 22. 如何在Hadoop Mapreduce中使用MultithreadedMapper類?
- 23. 在Cognos BI環境中使用Apache Hadoop
- 24. 在Hadoop中使用MapReduce過濾
- 25. 在Hadoop中使用NullWritable的優點
- 26. 無法創建使用DFS在Hadoop中
- 27. 在Hadoop中使用DBInputFormat的MultipleInputs
- 28. 如何在hadoop中使用JobControl
- 29. 在MapReduce中使用Hadoop的例外
- 30. Pyspark:從pyspark數據框中
'hadoopFile'方法是應該用來讀取文件的內容,RDD方法不提供輸入URI參數。 –
我其實不知道如何使用RDD方法...我正在閱讀源代碼,並且這兩種方法都返回RDD的... –
是的,這些RDD方法假定文件已被sc讀取,使用接受URI的'addFile()'方法。我在上下文中添加了這些方法。 – franklinsijo