[Spark] 从字符串创建StructType

    在使用Spark开发的过程中,DataFrame是经常使用的一个数据类型,它比RDD有了更加高级的API,更高的执行效率。
    然而,某些情况下,经需要将一个RDD转换为DataFrame,这一步经常需要生成一个StructType来生成DataFrame的schema。直接生成StructType是一个比较麻烦的过程。由于笔者经常使用,便写的一个生成StructType的函数,通过传入的个字段和类型的组合字符串,直接生成StructType,实际使用中确实方便了不少。于是将这个函数记录下来。
函数如下:

  def buildStructType(fields: String): StructType = {
    StructType(fields.split(",").map(_.split(":"))
      .map(field => {
        val fieldType = field(1).toString.toLowerCase() match {
          case "string" => StringType
          case "int" => IntegerType
          case "integer" => IntegerType
          case "double" => DoubleType
          case "float" => FloatType
          case "long" => LongType
          case "boolean" => BooleanType
          case _ => StringType
        }
        StructField(field(0), fieldType, true)
      }))
  }

使用示例:

    val fields = "rid:string,cert_id:string,important_type:string,fst_level_mark:string,snd_level_mark:string,trd_level_mark:string,seg_dept_code:string,seg_dest_code:string,capturetime:long,real_date:long"
    val structType = buildStructType(fields)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇