
[英]Collect rows from spark DataFrame into JSON object, then put the object to another DF
[英]praw - scalable way to put comments into spark df
我正在使用 praw 与 reddit API 合作。 我过滤了 subreddit 的所有评论,现在想将数据放入 spark 数据框中。
一种方法(我尝试过)是将 append 的所有内容放到一个列表中,然后将其放入一个 df 中。 但这不可扩展。 我也不想将其下载/保存在额外的文件中。 我现在想知道是否有一种可扩展的方式将评论放入 df 中?
提前谢谢你的帮助!
到目前为止,这是我的代码(但已实现列表):
subreddit = reddit.subreddit('Refugees').new(limit = None)
comments = []
for submission in subreddit:
#replace_more to solve error
submission.comments.replace_more(limit = 0)
for comment in submission.comments:
#get comments
comments.append(comment.body)
if len(comment.replies) > 0:
#dig deeper and get replies
for reply in comment.replies:
comments.append(reply.body)
from pyspark.sql import SparkSession
from pyspark.sql.types import ArrayType
from pyspark.sql.types import StructField
from pyspark.sql.types import StructType
from pyspark.sql.types import StringType
from pyspark.sql.types import IntegerType
from pyspark.sql.functions import col,isnan, when, count
from pyspark.sql.functions import initcap
from pyspark.sql.functions import countDistinct
import findspark
findspark.init("/usr/local/spark/")
spark = SparkSession.builder \
.master("local[*]") \
.appName("project") \
.config("spark.executor.memory", "1gb") \
.getOrCreate()
schema = StructType([
StructField('Comments', StringType(), True),
])
df = spark.createDataFrame([(c,) for c in comments], schema = schema)
print(df.schema)
df.show(70)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.