通过spark在hdfs中读写图像

时间:2018-03-19 05:16:51

标签: scala apache-spark apache-spark-sql hdfs

您好我正在尝试从本地文件系统读取图像文件,并通过spark和scala将其存储在HDFS文件系统中。

这是我的代码。

% cat test.cc
int main(int argc, char **argv) {
  int k = 0x7fffffff;
  k += argc;
  return 0;
}
% clang++ -fsanitize=undefined test.cc
% ./a.out

我尝试将op数据帧写入HDFS,然后我得到了以下异常

val streams = spark.sparkContext.wholeTextFiles("file:///home/jeffi/input/Images_Test/")
val op = streams.toDF()  //op: org.apache.spark.sql.DataFrame = [_1: string, _2: string]
op.printSchema() //root |-- _1: string (nullable = true) |-- _2: string (nullable = true)

我尝试了各种类型的写方法,如op.write,op.write.wholeTextFiles(“”)

对我来说没有任何作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

关于您的错误,如果您检查text方法,

  

将[[DataFrame]]的内容保存在指定的文本文件中   路径。
  DataFrame必须只有一个字符串类型的列   每行都成为输出文件中的新行。

但在您的情况下,op有两列,因此您可以将文件另存为csv或将其转换为RDD,然后将其另存为文本文件。

但正如Ramesh Maharjan所说,你不应该使用文本API来阅读图像文件。