我在S3中存储了2个文件:
1.电影:~10 mils记录
1.额定值:~1 mils记录
我想读取和存储输出为 parquet 如下:
1.电影:仅限分级文件中可用的电影。
1.额定值:加载所有内容。
我应该使用临时表和下面的SQL查询来实现这一点吗?但是我对这里的性能有疑问。
如果有什么可以改进的地方?我该怎么做?
谢谢。
title.createOrReplaceTempView("TMPtitles")
rating.createOrReplaceTempView("TMPratings")
title_rating = spark.sql("""
SELECT titles.movie_id, titles.movie_type, titles.primary_title, titles.original_title, titles.is_adult, titles.start_year,
titles.end_year, titles.runtime_minutes, titles.genres
FROM TMPtitles titles
WHERE EXISTS (SELECT 1 FROM TMPratings ratings WHERE titles.movie_id = ratings.movie_id)
""")
1条答案
按热度按时间8cdiaqws1#
你最好做一个连接,而不是WHERE EXISTS,你也可以广播收视率表,这将提高性能。