我在Python中为Spark创建了一个数据框,但我不知道为什么它不返回任何结果。作业运行没有错误,但是没有输出,我已经对目录和事物进行了三重检查,所以我知道不是那样。这是我的代码:
from pyspark.sql import SparkSession
from pyspark.sql import Row
import collections
spark = SparkSession.builder.config("spark.sql.warehouse.dir",
"file:///C:/temp").appName("YouTubeVideos").getOrCreate()
def mapper(line):
fields = line.split(',')
return Row(title=str(fields[1].encode("utf-8")), views=int(fields[5]))
lines = spark.sparkContext.textFile("file:///YouTubeData/USvideos.csv")
vidViews = lines.map(mapper)
schemaViews = spark.createDataFrame(vidViews).cache()
schemaViews.createOrReplaceTempView("vidViews")
mostPopular = spark.sql("SELECT * FROM vidViews WHERE views > 10")
for i in mostPopular.collect():
print(i)
schemaViews.groupBy("title").count().orderBy("views").show()
spark.stop()
我正在尝试从csv文件中提取视频标题和观看次数,然后在上面的代码中显示SQL语句中显示的结果。我也知道csv中这些特定字段的索引是正确的,所以我想知道是否有些东西我完全丢失了。
似乎您没有启动SparkSession
。代替
spark.stop()
您应该选择start
您的查询和awaitTermination
。