Spark MongoDB Connector не сохраняет фрейм данных SparkNLP - PullRequest
0 голосов
/ 04 февраля 2020

Я столкнулся с какой-то странной «ошибкой» при использовании Spark Connector mongoDB для сохранения кадра данных, созданного с помощью Spark NLP (JohnSnowLabs). Самое смешное, что на самом деле я не получаю ошибку, вот мой код, и я опишу, что происходит:

    # Build the SparkSession
spark = SparkSession.builder \
   .master("local") \
   .appName("TrumpTweets") \
   .config("spark.executor.memory", "1gb") \
   .config("spark.mongodb.input.uri", "mongodb://127.0.0.1/trumptweets.tweets") \
   .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/trumptweets.tweets") \
   .config("spark.jars.packages", "JohnSnowLabs:spark-nlp:2.3.4")\
   .getOrCreate()

import sparknlp
from sparknlp.pretrained import PretrainedPipeline

# setup the (pretrained pipeline)
sentiment_pipeline = PretrainedPipeline("analyze_sentiment", "en")

# transform the pipeline a dataframe
sentiment_df = sentiment_pipeline.transform(df)

sentiment_df.show()
OUTPUT: +--------------------+-------------------+--------------+-------------------+----------+-------------+------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
|                 _id|         created_at|favorite_count|             id_str|is_retweet|retweet_count|            source|                text|            document|            sentence|               token|             checked|           sentiment|
+--------------------+-------------------+--------------+-------------------+----------+-------------+------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
|[5e396c5bfb66a775...|2019-11-29 14:06:02|        213355|1200415623798501378|     false|        40277|Twitter for iPhone|Just returned to ...|[[document, 0, 12...|[[document, 0, 12...|[[token, 0, 3, Ju...|[[token, 0, 3, Ju...|[[sentiment, 0, 1...|
|[5e396c5bfb66a775...|2019-11-29 01:25:13|        183578|1200224161576017921|     false|        43337|Twitter for iPhone|I thought Newswee...|[[document, 0, 39...|[[document, 0, 38...|[[token, 0, 0, I,...|[[token, 0, 0, I,...|[[sentiment, 0, 3...|
|[5e396c5bfb66a775...|2019-11-28 21:42:19|        285728|1200168067075981313|     false|        68741|Twitter for iPhone|HAPPY THANKSGIVING! |[[document, 0, 19...|[[document, 0, 18...|[[token, 0, 4, HA...|[[token, 0, 4, HA...|[[sentiment, 0, 1...|
|[5e396c5bfb66a775...|2019-11-28 13:21:29|        196423|1200042025699201026|     false|        33867|Twitter for iPhone|HAPPY THANKSGIVING! |[[document, 0, 19...|[[document, 0, 18...|[[token, 0, 4, HA...|[[token, 0, 4, HA...|[[sentiment, 0, 1...|
|[5e396c5bfb66a775...|2019-11-27 22:11:03|        179461|1199812908257095680|     false|        28158|Twitter for iPhone|95% Approval Rati...|[[document, 0, 54...|[[document, 0, 43...|[[token, 0, 2, 95...|[[token, 0, 2, 95...|[[sentiment, 0, 4...|
|[5e396c5bfb66a775...|2019-11-27 22:09:22|        133332|1199812482853933056|     false|        24290|Twitter for iPhone|New


sentiment_df.write.format("com.mongodb.spark.sql.DefaultSource").mode("overwrite").save() #NowEmpty
sentiment_df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()
sentiment_df.show()
++
||
++
++

Я использовал MongoDB Connector в приведенном выше файле, чтобы просто сохранить фрейм данных в начало, это просто отлично работает. Как вы можете видеть, dataframe sentiment_df не пустой, но после вставки его с помощью .save () он пуст в базе данных и, так или иначе, сам dataframe (local) остается пустым даже после перезаписи его новым определением.

Я полагаю, это какая-то проблема с синтаксисом?

Большое спасибо за вашу помощь!

...