【问题标题】:Count words Scala and create a dictionnary数单词 Scala 并创建字典
【发布时间】:2017-03-01 22:40:52
【问题描述】:

我有一个带有类型和描述文本的 csv 文件

type ; text
  0  ; hello world
  0  ; hello text 2
  1  ; text1
  1  ; text
  2  ; world base
  2  ; Hey you
  2  ; test

事实上,我想创建一个字典,并有另一个像这样结构的 csv 文件,其中每种类型的唯一行和描述中每个单词的频率

type ; hello ; world ; text ; 2 ; text1 ; base ; hey ; you ; test
  0  ;  2    ;  1    ;  1   ; 1 ;   0   ;   0  ;  0  ;  0  ;   0
  1  ;  0    ;  0    ;  1   ; 0 ;   1   ;   0  ;  0  ;  0  ;   0
  2  ;  0    ;  1    ;  0   ; 0 ;   0   ;   1  ;  1  ;  1  ;   1

我的 csv 文件中有很多行包含许多字符串,这只是一个示例。

这些天我才刚刚开始使用 spark 和 scala。需要任何帮助。

谢谢

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    试试:

    import org.apache.spark.sql.functions._
    
    df.withColumn("text", explode(split($"text", "\\s+")))
      .groupBy("type")
      .pivot("text")
      .count.na.fill(0)
    

    【讨论】:

    • 这不是一个真正的答案 - 好的答案试图解释解决方案如何解决原始问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多