apache-spark - Spark SQL 更新/删除
问题描述
目前,我正在使用 pySpark 进行一个项目,该项目读取一些 Hive 表,将它们存储为数据帧,并且我必须对它们执行一些更新/过滤器。我不惜一切代价避免使用 Spark 语法来创建一个框架,该框架只在将使用我的 pySpark 框架运行的参数文件中采用 SQL。
现在的问题是我必须对我的最终数据帧执行 UPDATE/DELETE 查询,是否有任何可能的解决方法来对我的数据帧执行这些操作?
太感谢了!
解决方案
ADataFrame
是不可变的,你不能改变它,所以你不能更新/删除。
如果您想“删除”,有一个.filter
选项(它将DF
根据您应用的验证创建一个新的排除记录filter
)。如果你想“更新”,更接近的等价物是.map
,你可以“修改”你的记录,并且该值将在一个新DF
的,问题是该函数将迭代.df
.
您需要记住的另一件事是:如果您将数据df
从某个源(即 Hive 表)加载到 a 中并执行一些操作。更新后的数据不会反映在您的源数据中。DF
's live on memory,直到你持久化该数据。
因此,对于这些操作,您不能使用DF
sql 表。根据您的要求,您需要分析 Spark 是否是针对您的特定问题的解决方案。
推荐阅读
- c# - 十进制转字符串转换在不同的windows系统中显示不同的十进制值
- pandas - 我使用 SARIMA 中的训练和测试集来预测应该是当前值,但是我将如何预测超出我的时间戳的值
- reactjs - 在 React Hooks 中。如何将状态设置为随机数并使用它来显示数组中的字符串
- .net - 注入 DataAccess 层类不允许调用 Controller 方法
- c# - 如何通过将鼠标移动到图表区域上来显示折线图的最近数据点信息
- java - 捆绑 PlayStore 应用程序后,集成 SDK 的行为有所不同
- javascript - 根据滑块位置移动标记?
- c# - 如何在 C# 中从 clipboard.gettext 定义计时器间隔
- android - Android reCaptcha 强制纵向定向
- python-3.x - 如何从boto3获取对象(文件)到期日期