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

Spark动态DataFrame实现

Spark动态DataFrame实现

在Spark中如何实现在运行中,如何动态修改Dataframe表结构呢?
您可以参照以下,动态添加gender,address的方式

test("动态Dataframe测试"){
    val frame = spark.table("app_offline.task_table_zhihuiya")
    val schema: StructType = frame.schema
      .add("gender", StringType)
      .add("address", StringType)
    frame
      .map(row=>{
        // 得到Row中的数据并往其中添加我们要新增的字段值
        val buffer = Row.unapplySeq(row).get.toBuffer
        buffer.append("男") //增加一个性别
        buffer.append("北京") //增肌一个地址
        // 获取原来row中的schema,并在原来Row中的Schema上增加我们要增加的字段名以及类型.
        val schema: StructType = row.schema
          .add("gender", StringType)
          .add("address", StringType)
        // 使用Row的子类GenericRowWithSchema创建新的Row
        val newRow: Row = new GenericRowWithSchema(buffer.toArray, schema)
        // 使用新的Row替换成原来的Row
        newRow
      })(RowEncoder(schema))
      .printSchema()
  }

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

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

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