• SparkSQL之更改表结构


    本文篇幅较短,内容源于自己在使用SparkSQL时碰到的一个小问题,因为在之后的数据处理过程中多次使用,所以为了加深印象,在此单独成文,以便回顾。

    场景

    在使用SparkSQL进行数据处理时,碰到这样一种情况:需要更改DataFrame当中某个字段的类型。简而言之,就是需要更改SparkSQL的表结构。出于学习的目的,做了一个简单的Demo。下面来看看这个实例。

    Example

    ......
    ......
    
    此处省略相关jar包的引入

    首先使用sparkSQL的jsonFile加载HDFS上的一个文件(此步在此直接省略了),得到如下的表结构:

    scala> dfs.printSchema
    root
     |-- name: string (nullable = true)
     |-- desc: string (nullable = true)
     |-- click: double (nullable = true)
     |-- view: double(nullable = true)

    目的:将clickview转成的类型转成Long

    操作如下:

    首先需要定义一个函数,将表内的`Double`类型转为`Long`类型,函数如下:

    val toLong = udf[Long, Double](_.toLong)

    然后使用withColumn变换字段类型,代码如下:

    val dfs2 = dfs.withColumn("click", toLong(dfs("click"))).withColumn("view", toLong(dfs("view")))

    使用printSchema查看表结构:

     另一种转换方式:

          dfs0306.withColumn("time",dfs0306("time").cast("Long"))

    OK,一个简单的表结构变换便完成了,又get了一个小技巧。

    版权声明:本文为博主原创文章,转载请注明来源。 https://blog.csdn.net/Dream_angel_Z/article/details/52005790
  • 相关阅读:
    【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
    modelsim使用常见问题及解决办法集锦③
    modelsim使用常见问题及解决办法集锦 ②
    KeepAlived双主模式高可用集群
    充分利用nginx的reload功能平滑的上架和更新业务
    nginx日志配置指令详解
    MongoDB 副本集
    MongoDB 备份还原
    MongoDB的搭建、参数
    mongoDB整个文件夹拷贝备份还原的坑
  • 原文地址:https://www.cnblogs.com/houji/p/8794954.html
Copyright © 2020-2023  润新知