Spark SQL, не поддерживает формат Dataframe - PullRequest
0 голосов
/ 17 февраля 2019

Я анализирую файлы 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|
   +--------------------+----+-----+

Почему так происходит и как этого избежать?

...