apache-spark - (Py)Spark 中数据类型的用途是什么?
问题描述
PySpark 提供了各种数据类型,但似乎没有任何有用的方法可以调用这些类型。例如,ArrayType
甚至没有插入、删除或查找方法。
为什么缺乏这种方法?如果我们对数据类型无能为力,那么 Spark 中数据类型的用途是什么?Spark 如何在内部处理这些类型?
解决方案
Spark 的类型与默认语言中的对象不同。它们用于序列化目的,允许 Spark 以它支持的任何格式存储数据:json, parquet, orc, csv
等等,这将允许您在写入存储时保留类型。
为了有更多方法来处理类型,Spark (Scala) 允许您使用DataSets
可case class
用于定义类型的方法。然后您可以使用原始类型来处理请求。
import spark.implicits._
case class MyData(str1: String, int1: Int, arr1: Array[String])
spark.read.table("my_table").as[MyData]
对于 PySpark,这有点复杂,但您不必担心序列化。
如果需要操作 PySpark 中的类型,可以使用sql 函数。
推荐阅读
- c# - c# linq 包含参数值
- amazon-web-services - 是否可以从雅典娜查询中删除存储在 S3 存储桶中的整个表?
- postgresql - k8s docker容器挂载主机,但输出日志文件失败
- javascript - 如何在Javascript中获取作为字符串公开的操作结果
- c# - 在 Form Load 上读取文件并存储在二维数组中
- c++ - C ++ - 列出目录文件并将输出结果保存在txt中
- c# - 无法为 Azure Edge 构建 docker C#,错误 [build-env 6/6] RUN dotnet publish -c Release -o out
- python - 使用 Python 将非常长的二进制字符串编码为可恢复的简单形式的最佳方法?
- image-processing - 使用 ImageMagick 用蒙版图像合成图像
- javascript - 如何在 JavaScript 中复制完全独立于复制对象的对象?