`

使用spark 对文本分词统计

 
阅读更多
package com.snailteam.simple_project

import java.sql.DriverManager
import scala.collection.mutable.ArrayBuffer
import org.apache.spark.SparkContext
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.rdd.RDD.rddToPairRDDFunctions
import com.huaban.analysis.jieba.JiebaSegmenter
import com.huaban.analysis.jieba.JiebaSegmenter.SegMode
import scala.collection.JavaConversions

/**
 * 使用spark集群计算的时候,将jieba的类都  implements Serializable
 *
 * ./bin/spark-submit  --class com.snailteam.simple_project.App --jars lib/mysql-connector-java-5.1.18.jar
 *
 *
 *
 */
object App {
  val url = "xx"
  val username = "xx"
  val password = "xx"
  def main(args: Array[String]): Unit = {
    //    val conf = new SparkConf()
    //      .setMaster("spark://192.168.56.102:7077")
    //      .setAppName("mysql_test")
    //    val sc = new SparkContext(conf)

    val sc = new SparkContext("local", "mysql")
    val seg = new JiebaSegmenter;
   val rdd = new JdbcRDD(  
      sc,  
      () => {  
        Class.forName("com.mysql.jdbc.Driver").newInstance()  
        DriverManager.getConnection(url, username, password)  
      },  
      "select * from book  limit ?,? ",  
      1, 10000000, 4)  
    var result = rdd.flatMap { x =>  
      {  
        var ts = seg.process(x(8).toString(), SegMode.SEARCH);  
        for(t<-JavaConversions.asScalaBuffer(ts)  if (t.word.getTokenType.contains("v") || t.word.getTokenType.contains("n") || t.word.getTokenType.contains("a")) ) yield t.word.getToken;  
      }  
    }.map { word => (word, 1) }.reduceByKey(_ + _).sortBy(f=>{f._2}, false).take(100);  
    result.foreach(println)
    sc.stop()  
  }
}

 

分享到:
评论

相关推荐

    Spark大数据中文分词统计Scala语言工程源码

    本文将深入探讨一个基于Spark的Scala项目,该工程利用IKAnalyzer分词组件实现对唐诗宋词等国学经典的中文分词统计,并进行了排序,让我们能够了解这些古典文学作品中最常出现的词汇。 首先,Spark是大数据处理框架...

    Spark中文分词+文本分类.rar

    在这个项目中,我们重点关注的是如何使用Spark MLlib和Scala来实现中文文本的分词和分类,特别是通过逻辑回归模型进行文本分类。 首先,中文分词是处理中文文本的前提步骤,因为中文没有明显的空格来分隔单词。在...

    文本语义分词工具

    大数据处理技术如Hadoop、Spark等,用于高效地存储、管理和分析海量文本,确保分词任务的可扩展性和性能。 4. **分布式计算**:在处理大量文本时,分布式计算框架如Apache Hadoop和Spark能将任务拆分成小部分,在多...

    【Spark资源】Spark单词统计实验.pdf

    SparkWordCount是Spark的基本示例,用于统计文本文件中每个单词的出现次数。在创建的Maven项目中,添加Spark相关的依赖,如`spark-core`和`spark-sql`。然后,使用Scala编写WordCount程序,核心代码通常包括以下...

    中文分词java

    4. **并行分词**:对于大规模文本处理,可以利用Java的多线程和分布式计算框架,如Apache Spark,进行并行分词,提高处理速度。通过将任务拆分为小块并行执行,可以显著提升整体效率。 在实际应用中,我们需要根据...

    ansj中文分词工具

    2. **命令行工具**:ansj提供了命令行工具,可以直接对文本文件进行分词处理,便于进行批量处理和测试。 3. **API接口**:ansj提供了详尽的Java API,开发者可以通过调用相关方法实现分词功能,与其他Java项目无缝...

    Spark NLP自然语言处理学习资料

    Spark NLP是Apache Spark的一个重要模块,专注于自然语言处理(NLP)任务,为大数据环境下的文本分析提供了高效且易用的工具。这个学习资料涵盖了多个关键知识点,包括分词、TF-IDF(Term Frequency-Inverse ...

    jieba+百度分词词库

    为了进行情感分析,开发者可以利用jieba对文本进行分词,然后使用词频统计方法或基于机器学习的情感模型来评估文本的整体情感倾向。例如,计算积极词汇和消极词汇的比例,或者训练一个支持向量机(SVM)模型,将分词...

    Java调用paoding分词器对抓取的xml里面的新闻按照出现的词频进行分类

    总结来说,这个项目涉及到的主要知识点包括:Java编程、XML解析、Paoding分词器的使用、文本分词与词频统计、新闻分类算法、以及可能的分布式计算技术。通过这些技术,我们可以有效地对抓取的XML新闻数据进行分析和...

    一个文本在另一个文本中出现的次数

    6. **优化与扩展**:对于大规模文本数据,可能需要分布式计算或并行化处理,例如使用Hadoop或Spark框架。此外,还可以引入更复杂的文本表示方法,如词嵌入(Word Embedding)或BERT等预训练模型,提升匹配的准确性和...

    Learning Apache Spark with Python.pdf

    文本预处理包括清洗、分词、去除停用词和词干提取等步骤,而文本分类则涉及到利用机器学习模型将文本分配给不同的类别。 总之,本教程为数据科学家和工程师提供了一个全面的指南,用以使用Python语言和Apache Spark...

    spark1.4.pdf

    示例代码展示了如何创建一个Pipeline,使用`Tokenizer`进行文本分词,使用`HashingTF`进行特征提取,最后使用`LogisticRegression`进行训练。这种模型非常适合于构建端到端的机器学习流水线。 综上所述,Spark 1.4 ...

    文本分类语料库

    Apache Spark MLlib虽然不直接支持中文分词,但可以与第三方分词工具如jieba分词库结合使用,完成中文文本的预处理工作。 总的来说,这个项目展示了如何利用Spark MLlib和朴素贝叶斯算法进行中文文本分类,通过搜狗...

    JAVA编写的基于文本相似度匹配的文本聚类

    首先,我们需要对文本进行预处理,这包括分词。分词是将连续的字符序列切割成有意义的语言单位,如单词或短语。在Java中,我们可以使用开源的分词库,如Stanford CoreNLP或者IK Analyzer等,它们提供了丰富的分词...

    一段不简单的词频统计代码(含注释)

    在自然语言处理(NLP)领域,词频统计...此外,对于大规模文本,可能需要考虑使用分布式计算框架,如Apache Spark,来提高统计效率。通过掌握词频统计,我们可以更好地理解文本数据,并为后续的NLP任务打下坚实的基础。

    MapReduce实现TopN中文词频统计+英文词频统计+中文词频统计

    实验过程MapReduce实现英文词频统计使用中文分词工具实现中文词频统计实现TopN中文词频统计。由于三个实验难度层层递进,故本文只对MapReduce实现TopN中文词频统计做重点阐述。但是后续会把三个项目的实现都打包发...

    Java中文分词

    在Java中,可以使用Apache Mahout或Spark MLlib等库实现协同过滤算法,同时进行词频统计,这些工具提供了对大规模数据集进行高效处理的能力。 具体到压缩包文件“Homework_2”,这可能是一个包含Java代码、配置文件...

    Kmeans文本聚类java实现

    2. **分配样本**: 对每个文本向量,计算其与所有中心点的距离(常用欧氏距离),并将其分配到最近的中心点所在的簇。 3. **更新中心**: 计算每个簇内所有样本的均值,作为新的中心点。 4. **重复步骤2和3**:直到...

Global site tag (gtag.js) - Google Analytics