我正在尝试使用 810 个单独的 tif 文件处理多个文件夹。文件夹结构:在尝试为此创建数据框时,我遇到了加载的字节数组为空的问题。我显然需要那些进行处理。数据框创建:spark = SparkSession \ .builder \ .appName(name) \ .config("spark.executor.memory", "2g") \ .config("spark.driver.memory", "2g") \ .config("spark.executor.cores", "2") \ .getOrCreate()file_rdd = spark.read.format('image').load(argv[1] + '/' + '*/*')Argv 显然包含基本文件夹作为第一个参数。在调试(通过调试器或打印)时,我注意到我的数据框是一堆只有原点集的行,所有其他值要么是 -1 要么是空的。我主要需要填写字节数组,以及一个来源。虽然,当观察我系统上使用的内存时,有一个明显的峰值,表明它肯定加载了一些东西。我做错了什么或不受支持?
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
-1
s 表示对应的图片无效。如果您添加dropInvalid
选项并将其设置为True
,则这些选项可能根本不存在。
Spark 使用 Java 的ImageIO
库来读取图像。ImageIO
利用插件支持不同的图像格式。Java 版本高达 8 只附带 JPEG、PNG、BMP、WBMP 和 GIF 插件。Java 9 为 TIFF 添加了一个标准插件。由于 Spark 官方仅支持 Java 8,因此您的选择是使用 3rd 方 TIFF 插件ImageIO
,例如由 Stack Overflow 用户提供的这个插件。
要使用上述插件,请在 Spark 会话配置中添加如下内容:
.config("spark.jars.packages", "com.twelvemonkeys.imageio:imageio-tiff:3.5,com.twelvemonkeys.imageio:imageio-core:3.5") \
您可以在Maven 索引中跟踪包版本。
添加回答
举报
0/150
提交
取消