spark-saveastextfile不能应用于“(java.lang.string,org.apache.hadoop.io.compress.compressioncodec)”

x4shl7ld  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(325)

我正在用spark用java写一个程序。
我有一个名为“copied\u logs”的javardd,它使用map并从hdfs上的日志中复制几个字段。
现在,我想用bzip2压缩“复制的日志”,然后保存它。我想使用“saveastextfile”函数将这些数据保存在hdfs上。我的压缩和保存代码如下:

CompressionCodec codec = new BZip2Codec();
    copied_logs.saveAsTextFile(output_dir + "copied_logs.json", codec);

但我有个错误:

Error:(128, 69) java: incompatible types: org.apache.hadoop.io.compress.CompressionCodec cannot be converted to java.lang.Class<? extends org.apache.hadoop.io.compress.CompressionCodec>

谢谢您。

vxf3dgd4

vxf3dgd41#

方法的第二个参数 saveAsTextFile 是类类型(doc)。因此,需要传递.class对象。
比如:

copied_logs.saveAsTextFile(output_dir + "copied_logs.json", BZip2Codec.class)

相关问题