如何在Spark中为StructType structField设置默认值?

时间:2016-02-20 14:21:46

标签: apache-spark spark-dataframe

我像我那样定义了我的字段

<div class="a" >
  <div class="b">b1
    <div class="c">b1c1</div>
    <div class="d">b1d1</div>
    <div class="d">b1d2</div>
  </div>
  <div class="b">b2
    <div class="c">b2c1</div>
    <div class="d">b2d1</div>
    <div class="d">b2d2</div>
    <div class="d">b2d3</div>
  </div>
  <div class="b">b3
    <div class="c">b3c1</div>
    <div class="d">b3d1</div>
  </div>
</div>

但我的数据有点不合理。 有些数据有'os'字段,有些没有,有些是空字符串。

如果它们为空或没有字段将所有子字段设置为null,如何设置默认值。 我在使用null时将其设置为null值,但我想将其设置为val os = structField(self.os, StructType( StructField("family", StringType, true) :: StructField("major", StringType, true) :: StructField("minor", StringType, true) :: StructField("patch", StringType, true) :: StructField("patch_minor", StringType, true) :: Nil ))

{family: null, major: null, minor: null, patch: null, patch_minor: null}

它会抛出错误

when(imRDD("os").isNull, null).as("os"),

0 个答案:

没有答案