首页 > 解决方案 > (Py)Spark 中数据类型的用途是什么?

问题描述

PySpark 提供了各种数据类型,但似乎没有任何有用的方法可以调用这些类型。例如,ArrayType甚至没有插入、删除或查找方法

为什么缺乏这种方法?如果我们对数据类型无能为力,那么 Spark 中数据类型的用途是什么?Spark 如何在内部处理这些类型?

标签: apache-sparkpysparkapache-spark-sql

解决方案


Spark 的类型与默认语言中的对象不同。它们用于序列化目的,允许 Spark 以它支持的任何格式存储数据:json, parquet, orc, csv等等,这将允许您在写入存储时保留类型。

为了有更多方法来处理类型,Spark (Scala) 允许您使用DataSetscase class用于定义类型的方法。然后您可以使用原始类型来处理请求。

import spark.implicits._
case class MyData(str1: String, int1: Int, arr1: Array[String])
spark.read.table("my_table").as[MyData]

对于 PySpark,这有点复杂,但您不必担心序列化。

如果需要操作 PySpark 中的类型,可以使用sql 函数


推荐阅读