case class的用法

10 篇文章 0 订阅

 创建case class

package jn.ws.bean

case class LogBean(
  account                  :String
  ,appId                   :String
  ,appVersion              :String
  ,carrier                 :String
  ,deviceId                :String
  ,deviceType              :String
  ,eventId                 :String
  ,ip                      :String
  ,latitude                :Double
  ,longitude               :Double
  ,netType                 :String
  ,osName                  :String
  ,osVersion               :String
  ,properties              :Map[String,String]
  ,releaseChannel          :String
  ,resolution              :String
  ,sessionId               :String
  ,timeStamp               :BigInt
  ,dt                      :String
  ,var newSessionId        :String
)

 定义模式匹配

package jn.ws.util

import jn.ws.bean.LogBean
import org.apache.spark.sql.Row

object EtlUtils {
  def row2Logbean(row: Row): LogBean = {
    row match {
      case Row(
        account: String
        , appId: String
        , appVersion: String
        , carrier: String
        , deviceId: String
        , deviceType: String
        , eventId: String
        , ip: String
        , latitude: Double
        , longitude: Double
        , netType: String
        , osName: String
        , osVersion: String
        , properties: Map[String, String]
        , releaseChannel: String
        , resolution: String
        , sessionId: String
        , timeStamp: BigInt
        , dt: String
        , newSessionId: String
      ) =>
        LogBean(
          account
          , appId
          , appVersion
          , carrier
          , deviceId
          , deviceType
          , eventId
          , ip
          , latitude
          , longitude
          , netType
          , osName
          , osVersion
          , properties
          , releaseChannel
          , resolution
          , sessionId
          , timeStamp
          , dt
          , newSessionId
        )
      case _ => null
    }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值