如何在cas的Spark中进行数据预处理

2024-06-16 14:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我用scala做了一个如下的数据集。你知道吗

+--------------------+---+
|                  text| docu_no|
+--------------------+---+
|서울,NNP 시내,NNG 한,M...|  1|
|최저,NNG 임금,NNG 때문,...|  2|
|왜,MAG 시급,NNG 만,JX...|  3|
|지금,MAG 경제,NNG 가,J...|  4|
|임대료,NNG 폭리,NNG 내리...|  5|
|모든,MM 문제,NNG 를,JK...|  6|
|니,NP 들,XSN 이,JKS ...|  7|
|실제,NNG 자영업,NNG 자,...|  8|

我想做DTM分析。 例如

docu_no|서울|시내|한|최저|임금|지금|폭리 ...
1    1    1  1  0   0   0    0
2    0    0  0  1   1   1    1

为此,我认为预处理如下。你知道吗

+--------------------+---+
|       text|count |docu_no
+--------------------+---+
|서울,NNP |  1|  1
|시내,NNG |  1|  1
|한,M.    |  1|  1
|최저,NNG |   1|  2
|임금,NNG|    1|  2
|때문,...|    1|  2

在我做了这个(rdd或DataSet)之后,如果我使用groupby和pivot,我将得到我想要的结果。但这对我来说太难了。如果你有什么想法,请告诉我。你知道吗


Tags: 数据notextnpmmjxscalajk
1条回答
网友
1楼 · 发布于 2024-06-16 14:55:24
val data = List(("A", 1),("B", 2),("C", 3),("E", 4),("F", 5))

val df = sc.parallelize(data).toDF("text","doc_no")
df.show()

+  +   +
|text|doc_no|
+  +   +
|   A|     1|
|   B|     2|
|   C|     3|
|   E|     4|
|   F|     5|
+  +   +

import org.apache.spark.sql.functions._
df.groupBy($"doc_no").pivot("text").agg(count("doc_no")).show()
+   + -+ -+ -+ -+ -+
|doc_no|  A|  B|  C|  E|  F|
+   + -+ -+ -+ -+ -+
|     1|  1|  0|  0|  0|  0|
|     2|  0|  1|  0|  0|  0|
|     3|  0|  0|  1|  0|  0|
|     4|  0|  0|  0|  1|  0|
|     5|  0|  0|  0|  0|  1|
+   + -+ -+ -+ -+ -+

相关问题 更多 >