在pyspark中读取lzo文件

sycxhyv7  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(317)

我是新来的。我在一个文件夹里有一堆lzo索引文件。索引按照上所示进行https://github.com/twitter/hadoop-lzo.
文件如下:

1.lzo
1.lzo.index
2.lzo
2.lzo.index

and so on

我想看这些文件。我正在使用newapihadoopfile()。
如上所述,https://github.com/twitter/hadoop-lzo
我做了以下工作:

val files = sc.newAPIHadoopFile(path, classOf[com.hadoop.mapreduce.LzoTextInputFormat],classOf[org.apache.hadoop.io.LongWritable],classOf[org.apache.hadoop.io.Text])
val lzoRDD = files.map(_._2.toString)

它在scala(sparkshell)中运行良好。
但是,我想使用pyspark(pythonsark应用程序)。我正在做以下工作:

files = sc.newAPIHadoopFile(path,"com.hadoop.mapreduce.LzoTextInputFormat","org.apache.hadoop.io.LongWritable","org.apache.hadoop.io.Text")
lzoRDD = files.map(_._2.toString)

我得到以下错误:attributeerror:'rdd'对象没有属性'\u 2'
整个代码如下:

import sys
from pyspark import SparkContext,SparkConf

if __name__ == "__main__":
    #Create the SparkContext
     conf = (SparkConf().setMaster("local[2]").setAppName("abc").set("spark.executor.memory", "10g").set("spark.cores.max",10))

     sc = SparkContext(conf=conf)

     path='/x/y/z/*.lzo'
     files = sc.newAPIHadoopFile(path,"com.hadoop.mapreduce.LzoTextInputFormat","org.apache.hadoop.io.LongWritable","org.apache.hadoop.io.Text")
     lzoRDD = files.map(_._2.toString)

     #stop the SparkContext
     sc.stop()

我正在使用spark submit提交。
任何帮助都将不胜感激。
谢谢您

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题