簡體   English   中英

Apache Spark無法找到類CSVReader

[英]Apache Spark cannot find class CSVReader

我的代碼嘗試解析一個簡單的csv文件,如下所示:

SparkConf conf = new SparkConf().setMaster("local").setAppName("word_count");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> csv = sc.textFile("/home/user/data.csv");

JavaRDD<String[]> parsed = csv.map(x-> new CSVReader(new StringReader(x)).readNext());
parsed.foreach(x->System.out.println(x));  

但是,Spark作業以找不到類的異常結束,該異常表示CSVReader 我的pom.xml看起來像這樣:

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.1.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>com.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>3.8</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

我該如何解決?

如果您的代碼依賴於其他項目,則需要將它們打包在您的應用程序旁邊,以便將代碼分發到Spark集群。 為此,創建一個包含您的代碼及其依賴項的程序集jar(或“超級” jar)。 sbt和Maven都有程序集插件。 創建程序集jar時,將Spark和Hadoop列為提供的依賴項; 這些不需要捆綁在一起,因為它們是由集群管理器在運行時提供的。
來源: http : //spark.apache.org/docs/latest/submitting-applications.html

當Maven將項目打包到JAR中時,它不會提供依賴項JAR。 為了附帶提供依賴關系JAR,我添加了Maven Shade插件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <filters>
            <filter>
                <artifact>*:*</artifact>
                <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                </excludes>
            </filter>
        </filters>
        <finalName>${project.artifactId}-${project.version}</finalName>
    </configuration>
</plugin>  

另請參閱: 如何簡化以獨立模式將Jar部署到Spark Cluster的過程?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM