pyspark - pyspark如何检查给定的spark数据框是否已使用inferSchema = True创建
问题描述
我正在开发一个 API,其中一个函数应该接收一个 spark 数据帧,并使用 spark 数据帧中的模式来执行操作。
由于无法保证用户将创建数据框并将推断架构设置为 True,因此我的函数将接收到没有推断架构的数据框,因此如果发生这种情况,我想抛出一个错误。
我可以检查是否使用 inferSchema=True 创建了数据框?或者是否有一个 pyspark 函数可以在创建数据框后推断模式?
由于 inferSchema=False 所有列都是 StringType,我不能基于此拒绝数据帧,因为这是某些数据帧的可能模式。
解决方案
不,这不是它的工作原理。Spark 数据框总是有一个模式,无论模式是来自“推断”还是通过定义。“怀疑”数据框的唯一方法inferSchema=False
是——就像你说的——所有列都是StringType
. 所以这里的一个选项是你的 API 可以抛出警告而不是错误,如果你看到所有列都是字符串
推荐阅读
- python - 是否有 pandas 函数通过多值比较过滤 DataFrame?
- select - 直接回答 sparql 选择 graphdb 等效类的查询?
- visual-studio-2013 - 我找不到 Windows 驱动程序工具包 8.1 的下载
- java - java - 如何从Java文件中打印出两个空行之间的所有内容?
- python - Android 应用显示来自 Python 套接字服务器的解码消息为空
- php - 我找不到显示“无结果”的方法。
- node.js - 如何从 node.js 对话框流包设置对话框流上下文
- python - 使用 Pycharm 中的输出将代码转换为 pdf
- c# - 使用 OnTriggerEnter2D 检测我的游戏对象上的某些对撞机
- d - 如何在 Erupted-V2 中定义 vkCreateXcbSurfaceKHR?