Как отфильтровать зашумленные данные по столбцу в проекте apache spark maven? - PullRequest
0 голосов
/ 25 декабря 2018

Я работаю над Apache Spark над проектом Java Maven. У меня есть комментарии подобного рода на этом рисунке; ​​

     +--------+--------------+----------------------+-----------------+--------------------+----------------+-----------+-------------+-----+------+------+-------+--------+----------+----------+------------+-----+------------+----------+------------+---+
|archived|        author|author_flair_css_class|author_flair_text|                body|controversiality|created_utc|distinguished|downs|edited|gilded|     id| link_id|      name| parent_id|retrieved_on|score|score_hidden| subreddit|subreddit_id|ups|
+--------+--------------+----------------------+-----------------+--------------------+----------------+-----------+-------------+-----+------+------+-------+--------+----------+----------+------------+-----+------------+----------+------------+---+
|    true|       bostich|                  null|             null|                test|               0| 1192450635|         null|    0| false|     0|c0299an|t3_5yba3|t1_c0299an|  t3_5yba3|  1427426409|    1|       false|reddit.com|        t5_6|  1|
|    true|igiveyoumylife|                  null|             null|much smoother.

...|               0| 1192450639|         null|    0| false|     0|c0299ao|t3_5yba3|t1_c0299ao|  t3_5yba3|  1427426409|    2|       false|reddit.com|        t5_6|  2|
|    true|          Arve|                  null|             null|Can we please dep...|               0| 1192450643|         null|    0| false|     0|c0299ap|t3_5yba3|t1_c0299ap|t1_c02999p|  1427426409|    0|       false|reddit.com|        t5_6|  0|
|    true|     [deleted]|                  null|             null|           [deleted]|               0| 1192450646|         null|    0| false|     0|c0299aq|t3_5yba3|t1_c0299aq|  t3_5yba3|  1427426409|    1|       false|reddit.com|        t5_6|  1|
|    true|     gigaquack|                  null|             null|Oh, I see. Fancy ...|               0| 1192450646|         null|    0| false|     0|c0299ar|t3_5yba3|t1_c0299ar|t1_c0299ah|  1427426409|    3|       false|reddit.com|        t5_6|  3|
|    true|       Percept|                  null|             null|         testing ...|               0| 1192450656|         null|    0| false|     0|c0299as|t3_5yba3|t1_c0299as|  t3_5yba3|  1427426409|    1|       false|reddit.com|        t5_6|  1|

Я анализирую данные и показываю только столбец тела. Я хочу очистить (фильтр) [удалено] комментарии и нелатинские комментарии в колонке тела.Как я могу это сделать?(Примечание: размер данных = 32 ГБ)

body:[Deleted]
body:How can I do that?

1 Ответ

0 голосов
/ 25 декабря 2018

Следующий фрагмент кода предназначен для Scala, но вы можете попробовать и адаптировать его для Java


Используйте Dataset.filter(..) метод следующим образом

import org.apache.spark.sql.{DataFrame, SparkSession}

val filteredData: DataFrame = dirtyData.
  filter(dirtyData("body") =!= "[Deleted]" && dirtyData("body").rlike("[\\x00-\\x7F]"))

Пояснение

  • dirtyData("body") =!= "[Deleted]" удаляет все строки, где столбец body имеет значение [Deleted] (вы можете захотеть обработать в верхнем и нижнем регистре тоже).См. Column =!=
  • dirtyData("body").rlike("[\\x00-\\x7F]") отбрасывает все строки, где body НЕ содержит символ ASCII (я не исследовал много в этой части, но вы можете найтилучше regex).См. Column.rlike(..)

Ссылки

...