【问题标题】:JAVA - SPARK - saveAsTextFile can not be applied to '(java.lang.String, org.apache.hadoop.io.compress.CompressionCodec)'JAVA - SPARK - saveAsTextFile 不能应用于“(java.lang.String,org.apache.hadoop.io.compress.CompressionCodec)”
【发布时间】:2015-12-16 17:42:31
【问题描述】:

我正在用 Spark 用 JAVA 编写程序。

我有一个名为“copied_logs”的 JavaRDD,它使用 map 并从 hdfs 上的日志中复制几个字段。

现在,我想用 Bzip2 压缩“copied_logs”,然后保存。 我想使用“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>

谢谢。

【问题讨论】:

    标签: java hadoop apache-spark


    【解决方案1】:

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

    类似:

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

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 2018-07-17
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多