spark dataframe新增列的处理

往一个dataframe新增某个列是很常见的事情。


然而这个资料还是不多,很多都需要很多变换。而且一些字段可能还不太好添加。


不过由于这回需要增加的列非常简单,倒也没有必要再用UDF函数去修改列。


利用withColumn函数就能实现对dataframe中列的添加。但是由于withColumn这个函数中的第二个参数col必须为原有的某一列。所以默认先选择了个ID。


scala> val df = sqlContext.range(0, 10)
df: org.apache.spark.sql.DataFrame = [id: bigint]


scala> df.show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
|  3|
|  4|
|  5|
|  6|
|  7|
|  8|
|  9|
+---+




scala> df.withColumn("bb",col(id)*0)
<console>:28: error: not found: value id
              df.withColumn("bb",col(id)*0)
                                     ^


scala> df.withColumn("bb",col("id")*0)
res2: org.apache.spark.sql.DataFrame = [id: bigint, bb: bigint]


scala> df.show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
|  3|
|  4|
|  5|
|  6|
|  7|
|  8|
|  9|
+---+




scala> res2.show()
+---+---+
| id| bb|
+---+---+
|  0|  0|
|  1|  0|
|  2|  0|
|  3|  0|
|  4|  0|
|  5|  0|
|  6|  0|
|  7|  0|
|  8|  0|
|  9|  0|
+---+---+




scala> res2.withColumn("cc",col("id")*0)
res5: org.apache.spark.sql.DataFrame = [id: bigint, bb: bigint, cc: bigint]


scala> res3.show()
<console>:30: error: value show is not a member of Unit
              res3.show()
                   ^


scala> res5.show()
+---+---+---+
| id| bb| cc|
+---+---+---+
|  0|  0|  0|
|  1|  0|  0|
|  2|  0|  0|
|  3|  0|  0|
|  4|  0|  0|
|  5|  0|  0|
|  6|  0|  0|
|  7|  0|  0|
|  8|  0|  0|
|  9|  0|  0|
+---+---+---+




scala> 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值