首页 > 解决方案 > 如何使用 ImageSchema 类 Java 语言读取图像 apache spark

问题描述

从 HDFS 读取图像文件并使用 ImageSchema 类时出现问题 https://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/ml/image/ImageSchema.html我没有不知道如何获取图像数据和集成的 OpenCV 库。

谢谢大家

标签: javaapache-sparkapache-spark-sqlapache-spark-ml

解决方案


您可以尝试以下示例来使用ImageSchema.readImages方法读取图像文件。

import static org.apache.spark.sql.functions.col;
import org.apache.spark.ml.image.ImageSchema;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.opencv.core.Core;

public class ReadImageExample {
    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder().appName("ReadImageExample").master("local").getOrCreate();
        Dataset<Row> ds = ImageSchema.readImages("C:\\temp", spark, false, 0, true, 1.0, 1);
        ds.printSchema();
        ds.select(col("image.width"), col("image.height"), col("image.mode")).show();
    }
}

您将需要以下依赖项。

<dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
</dependencies>

推荐阅读