我有一堆序列文件,其中键是字符串,值本身就是构成整个音频文件的字节。
我能够在Spark中成功加载这些序列文件:
val data = sc.sequenceFile(inputPath, classOf[Text], classOf[BytesWritable]).map{case (key, value) => value.copyBytes}
我想将这些值单独存储在HDFS上,作为音频文件,但我无法弄清楚如何做到这一点。我已经尝试了saveAsPickleFile和saveAsObjectFile,但都序列化了数据。什么是最好的方法呢?
答案 0 :(得分:0)
您可以使用以下选项,
saveAsHadoopFile ( path,outputFormatClass,keyClass = None,valueClass = None,keyConverter = None,valueConverter = None,conf = None,compressionCodecClass = None )
使用旧的Hadoop OutputFormat API(mapred包)将键值对(形式为RDD [(K,V)])的Python RDD输出到任何Hadoop文件系统。如果未指定,将推断键和值类型。使用用户指定的转换器或 org.apache.spark.api.python.JavaToWritableConverter 转换键和值以进行输出。 conf 应用于与此RDD的SparkContext关联的基本Hadoop conf之上,以创建用于保存数据的合并Hadoop MapReduce作业配置。
参数:
希望,这有帮助。