Я анализирую файлы Twitter с целью взять актуальную тему в формате json с Spark SQL
После того, как весь текст сформирован в виде твита и разбит слова, мой dataFrame выглядит следующим образом
+--------------------+--------------------+
| line| words|
+--------------------+--------------------+
|[RT, @ONLYRPE:, #...| RT|
|[RT, @ONLYRPE:, #...| @ONLYRPE:|
|[RT, @ONLYRPE:, #...| #tlrp|
|[RT, @ONLYRPE:, #...| followan?|
Мне просто нужны слова в столбце, я конвертирую свою таблицу в temView.
df.createOrReplaceTempView("Twitter_test_2")
С помощью spark sql должно быть очень легко взять актуальную тему, мне просто нужнозапрос в sql с помощью оператора условия «Like».такие слова, как "#%"
spark.sql("select words, count(words) as count from words_Twitter where
words like '#%' group by words order by count desc limit 10").show(20,False)
, но я получаю некоторые странные результаты, которые я не могу найти для них объяснения.
+---------------------+---+
|words |cnt|
+---------------------+---+
|#izmirescort |211|
|#PRODUCE101 |101|
|#VeranoMTV2017 |91 |
|#سلمان_يدق_خشم_العايل|89 |
|#ALDUBHomeAgain |67 |
|#BTS |32 |
|#سود_الله_وجهك_ياتميم|32 |
|#NowPlaying |32 |
по какой-то причине # 89 и№ 32 у арабских персонажей нет того места, где они должны быть.Текст был обменен со счетчиком.
другие разы я сталкиваюсь с таким форматом.
spark.sql("select words, lang,count(words) count from Twitter_test_2 group by words,lang order by count desc limit 10 ").show()
После этого запроса к моему фрейму данных это выглядит так странно
+--------------------+----+-----+
| words|lang|count|
+--------------------+----+-----+
| #VeranoMTV2017| pl| 6|
| #umRei| pt| 2|
| #Virgem| pt| 2|
| #rt
2| pl| 2|
| #rt
gazowaną| pl| 1|
| #Ziobro| pl| 1|
| #SomosPorto| pt| 1|
+--------------------+----+-----+
Почему так происходит и как этого избежать?