zoukankan      html  css  js  c++  java
  • RDD转换成DataFrames

    官方提供了2种方法

    1.利用反射来推断包含特定类型对象的RDD的schema。这种方法会简化代码并且在你已经知道schema的时候非常适用。

    先创建一个bean类

    case class Person(name: String, age: Int)

    然后将Rdd转换成DataFrame

    val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
    people.registerTempTable("people")

    注意:toDF()方法在spark的RDD api上是没找到的,是否为函数式编程语言,可以直接调用别的类的方法?因为toDF()方法是在DataFrame中能找到。

    2.使用编程接口,构造一个schema并将其应用在已知的RDD上。

    先创建一个scheme

    val schema = StructType( schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, true)))

    然后将scheme应用到Rdd上

    val rowRDD = people.map(_.split(",")).map(p => Row(p(0), p(1).trim))
    val peopleDataFrame = sqlContext.createDataFrame(rowRDD, schema)

    官网将的很清晰,直接参考官网的方法。

    官网链接:Interoperating with RDDs

  • 相关阅读:
    C# 日期帮助类【原创】
    C# 发送邮件
    每日一题力扣453
    每日力扣628
    每日一题力扣41巨坑
    每日一题力扣274
    每日一题力扣442有坑
    每日一题力扣495
    每日一题力扣645
    每日一题力扣697
  • 原文地址:https://www.cnblogs.com/nucdy/p/6649842.html
Copyright © 2011-2022 走看看