栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark SQL风格和DSL风格 wordcount案例(Helloword)

spark SQL风格和DSL风格 wordcount案例(Helloword)

SQL风格和DSL风格中分别进行wordcount案例是怎么样的、

sql风格:

    spark = SparkSession.builder.
        appName("test").
        master("local[*]").
        getOrCreate()
    sc = spark.sparkContext

    # TODO 1: SQL 风格进行处理
    rdd = sc.textFile("../data/input/words.txt").
        flatMap(lambda x: x.split(" ")).
        map(lambda x: [x])

    df = rdd.toDF(["word"])

    # 注册DF为表格
    df.createTempView("words")

    spark.sql("SELECt word, COUNT(*) AS cnt FROM words GROUP BY word ORDER BY cnt DESC").show()

DSL风格

    spark = SparkSession.builder.
        appName("test").
        master("local[*]").
        getOrCreate()
    sc = spark.sparkContext
    df = spark.read.format("text").load("../data/input/words.txt")

    # withColumn方法
    # 方法功能: 对已存在的列进行操作, 返回一个新的列, 如果名字和老列相同, 那么替换, 否则作为新列存在
    df2 = df.withColumn("value", F.explode(F.split(df['value'], " ")))
    df2.groupBy("value").
        count().
        withColumnRenamed("value", "word").
        withColumnRenamed("count", "cnt").
        orderBy("cnt", ascending=False).
        show()

DSL风格写起来确实有些难,因为要用到不同固定函数,不像sql那么易懂

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号