Select 基于 Apache Spark Scala 中的列数据类型将数据帧中的列转换为另一个数据帧
Select columns from a dataframe into another dataframe based on column datatype in Apache Spark Scala
我有一个 spark 数据框
inputDF: org.apache.spark.sql.DataFrame = [_id: string, Frequency: double, Monterary: double, Recency: double, CustID: string]
root
|-- _id: string (nullable = false)
|-- Frequency: double (nullable = false)
|-- Monterary: double (nullable = false)
|-- Recency: double (nullable = false)
|-- CustID: string (nullable = false)
我想通过从中删除字符串列来创建一个新的数据框。具体情况是不遍历列名。
有人知道吗?
如果模式是扁平的并且只包含简单类型,您可以过滤字段,但除非您有 crystal 球,否则您无法真正避免迭代:
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.functions.col
df.select(df.schema.fields.flatMap(f => f.dataType match {
case StringType => Nil
case _ => col(f.name) :: Nil
}): _*)
我有一个 spark 数据框
inputDF: org.apache.spark.sql.DataFrame = [_id: string, Frequency: double, Monterary: double, Recency: double, CustID: string]
root
|-- _id: string (nullable = false)
|-- Frequency: double (nullable = false)
|-- Monterary: double (nullable = false)
|-- Recency: double (nullable = false)
|-- CustID: string (nullable = false)
我想通过从中删除字符串列来创建一个新的数据框。具体情况是不遍历列名。 有人知道吗?
如果模式是扁平的并且只包含简单类型,您可以过滤字段,但除非您有 crystal 球,否则您无法真正避免迭代:
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.functions.col
df.select(df.schema.fields.flatMap(f => f.dataType match {
case StringType => Nil
case _ => col(f.name) :: Nil
}): _*)