在索引 spark-shell/scala 处更改 Array[StructField] 中的数据类型
Posted
技术标签:
【中文标题】在索引 spark-shell/scala 处更改 Array[StructField] 中的数据类型【英文标题】:Change datatype in Array[StructField] at an index spark-shell/ scala 【发布时间】:2016-07-21 02:41:41 【问题描述】:我在 spark-shell 中创建了一个长度为 8 的 Array[StructField]。 现在,我想编辑其中一个字段的数据类型。 代码:
val fields = header.map(field_name => StructField(field_name, IntegerType, true))
'header' 是我创建的架构字符串。
在 python/pyspark 中,要编辑索引 5 处的列数据类型,以下代码有效。
fields[5].dataType = StringType()
如何在 scala/spark-shell 中实现它?我尝试了以下两个代码,但没有奏效。
fields(5).dataType = StringType
fields(5).update(1, StringType)
我刚开始使用 scala。谢谢您的帮助。
【问题讨论】:
请问您为什么需要这个?它看起来像XY problem。一种或另一种方式 -DataTypes
是不可变的。
【参考方案1】:
试试:
fields(5) = fields(5).copy(dataType=StringType)
【讨论】:
以上是关于在索引 spark-shell/scala 处更改 Array[StructField] 中的数据类型的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 ngFor 在索引 + 2 处错误地更改值
滚动旋转时 UICollectionView 崩溃(索引路径处补充项目的布局属性已更改而未失效..)