【问题标题】:Pyspark most reliable way to verify column typePyspark 最可靠的验证列类型的方法
【发布时间】:2018-09-21 02:23:54
【问题描述】:

如果我从 CSV 读取数据,默认情况下所有列都是“字符串”类型。通常,我使用以下函数检查数据,这些函数概述了数据及其类型

  • df.dtypes
  • df.show()
  • df.printSchema()
  • df.distinct().count()
  • df.describe().show()

但是,如果存在我认为属于特定类型的列,例如双倍,如果我没有商业知识,我无法确定所有值是否都是双倍的,因为

1- 我看不到所有值(数百万个唯一值) 2-如果我明确地将它转换为双精度类型,火花会悄悄地转换类型而不抛出任何异常,并且非双精度值将转换为“null” - 例如

from pyspark.sql.types import DoubleType.

changedTypedf = df_original.withColumn('label', df_control_trip['id'].cast(DoubleType()))

那么确认列类型的最佳方法是什么?

【问题讨论】:

  • reading from CSV你可以设置inferSchema=True它会尝试找出每一列的类型,

标签: apache-spark pyspark type-conversion apache-spark-sql


【解决方案1】:

在 Scala Dataframe 中有字段“schema”,猜猜,在 Python 中也一样:

df.schema.fields.find( _.name=="label").get.dataType

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2018-02-19
    • 2010-11-02
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多