当前位置: 首页 > 知识库问答 >
问题:

CountVectorizerModel错误与apache火花-JavaAPI

蓬宾白
2023-03-14

我正在使用Apache Spark的示例代码follow文档:https://spark.apache.org/docs/latest/ml-features.html#countvectorizer

    import java.util.Arrays;
    import org.apache.spark.SparkConf;
    import org.apache.spark.api.java.JavaSparkContext;
    import org.apache.spark.ml.feature.CountVectorizer;
    import org.apache.spark.ml.feature.CountVectorizerModel;
    import org.apache.spark.sql.DataFrame;
    import org.apache.spark.sql.Row;
    import org.apache.spark.sql.RowFactory;
    import org.apache.spark.sql.SQLContext;
    import org.apache.spark.sql.types.*;
    public class CountVectorizer_Demo {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setAppName("LDA Online").setMaster(
                "local");
        JavaSparkContext sc = new JavaSparkContext(conf);

        SQLContext sqlContext = new SQLContext(sc);

        // Input data: Each row is a bag of words from a sentence or document.
        JavaRDD<Row> jrdd = sc.parallelize(Arrays.asList(
          RowFactory.create(Arrays.asList("a", "b", "c")),
          RowFactory.create(Arrays.asList("a", "b", "b", "c", "a"))
        ));
        StructType schema = new StructType(new StructField [] {
          new StructField("text", new ArrayType(DataTypes.StringType, true), false, Metadata.empty())
        });
        DataFrame df = sqlContext.createDataFrame(jrdd, schema);

        // fit a CountVectorizerModel from the corpus
        CountVectorizerModel cvModel = new CountVectorizer()
          .setInputCol("text")
          .setOutputCol("feature")
          .setVocabSize(3)
          .setMinDF(2) // a term must appear in more or equal to 2 documents to be included in the vocabulary
          .fit(df);

        // alternatively, define CountVectorizerModel with a-priori vocabulary
        CountVectorizerModel cvm = new CountVectorizerModel(new String[]{"a", "b", "c"})
          .setInputCol("text")
          .setOutputCol("feature");

        cvModel.transform(df).show();
    }
}

但我收到错误消息:

22年10月15日23:04:20信息BlockManagerMaster:使用703.6 MB RAM注册block manager localhost:56882,BlockManagerId(,localhost,56882)22年10月15日23:04:20信息BlockManagerMaster:在线程“main”java中注册BlockManager异常。lang.NoClassDefFoundError:org/apache/spark/sql/catalyst/InternalRow at org。阿帕奇。火花ml.功能。CountVectorizerParams$类。在组织中验证AndTransferMSChema(CountVectorizer.scala:72)。阿帕奇。火花ml.功能。计数矢量器。在组织中验证AndTransferMSChema(CountVectorizer.scala:107)。阿帕奇。火花ml.功能。计数矢量器。org上的transformSchema(CountVectorizer.scala:168)。阿帕奇。火花ml.PipelineStage。org上的transformSchema(Pipeline.scala:62)。阿帕奇。火花ml.功能。计数矢量器。在main处安装(CountVectorizer.scala:130)。CountVectorizer\u演示。main(CountVectorizer\u Demo.java:39)由:java引起。lang.ClassNotFoundException:组织。阿帕奇。火花sql。催化剂java的InternalRow。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:366)。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:355)。安全AccessController。java上的doPrivileged(本机方法)。网URLClassLoader。java上的findClass(URLClassLoader.java:354)。lang.ClassLoader。sun的loadClass(ClassLoader.java:425)。杂项。启动器$AppClassLoader。java上的loadClass(Launcher.java:308)。lang.ClassLoader。loadClass(ClassLoader.java:358)。。。6个以上

提前感谢。

共有1个答案

慎星纬
2023-03-14

非常感谢大家。我通过添加依赖项解决了我的问题:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-catalyst_2.10</artifactId>
    <version>1.5.1</version>
</dependency>
 类似资料:
  • 每次使用cassandra connector在spark中运行scala程序时都会出现此错误 这是我的程序

  • 我在运行下面我写的SPARK代码时出错了。我试图根据键找到所有向量的总和。每个输入行以键(整数)开始,然后是127个浮点数,这是一个具有127个维度的单个向量,即每一行以键和向量开始。

  • 我的spark程序在小数据集上运行良好。(大约400GB)但是当我将其扩展到大型数据集时。我开始得到错误

  • 我刚从Spark开始。我已经用Spark安装了CDH5。然而,当我尝试使用sparkcontext时,它给出了如下错误 我对此进行了研究,发现了错误:未找到:值sc 并试图启动火花上下文。/Spark-shell。它给错误

  • 我在一个Spark项目上工作,这里我有一个文件是在parquet格式,当我试图用java加载这个文件时,它给了我下面的错误。但是,当我用相同的路径在hive中加载相同的文件并编写查询select*from table_name时,它工作得很好,数据也很正常。关于这个问题,请帮助我。 java.io.ioException:无法读取页脚:java.lang.runtimeException:损坏的文

  • 我试图在所有节点都安装了Java1.7的集群上使用spark-submit运行java spark作业。 作业失败,返回java.lang.UnsupportedClassVersionError:com/WindLogics/DMF/Wether/MyClass:Unsupported Major.Minor版本51.0。 此外,当主机设置为Local时,作业也可以正常工作。如何进行调试和修复此