Hive 如何使用PySpark更新配置单元表中的记录?
我们正在使用spark处理大数据,最近得到了一个新的用例,我们需要使用spark更新配置单元表中的数据 下面是一个简单的例子: 数据驻留在配置单元表中,应用程序使用PySpark读取数据帧(比如df1)。 例如:数据框有以下列 员工姓名年龄工资 1 aaaa 2830000 2 bbbb 38 20000 3中交26.25万 4 dddd 30 32000 需要使用spark向表中添加更多记录 例: 无姓名年龄工资 加上5 dddd 30 32000 应用程序可以通过剥离操作列并附加到表中,将新数据读入第二个数据帧(比如df2)。这是直截了当的,而且效果非常好 df.write.format('parquet')\ .mode('append')\ .saveAsTable(规范配置单元表) 在某些情况下,我们需要删除现有记录或根据“操作”列进行更新 例: 无姓名年龄工资 删除2 bbbb 38 20000 更新4 dddd 30 42000 在上面的示例中,应用程序需要删除EmpNo:2并更新EmpNo:4 最终输出应如下所示: 员工姓名年龄工资 1 aaaa 2830000 3中交26.25万 4 dddd 3042000 5 dddd 30 32000 据我所知,Spark Sql中不提供更新操作,而且数据帧是不可变的,不能更改记录 有人遇到过这种情况吗?或者知道使用PySpark更新配置单元表中现有记录的任何选项吗 Pls:应用程序需要定期处理数百万条记录上的数千条更新Hive 如何使用PySpark更新配置单元表中的记录?,hive,pyspark-sql,Hive,Pyspark Sql,我们正在使用spark处理大数据,最近得到了一个新的用例,我们需要使用spark更新配置单元表中的数据 下面是一个简单的例子: 数据驻留在配置单元表中,应用程序使用PySpark读取数据帧(比如df1)。 例如:数据框有以下列 员工姓名年龄工资 1 aaaa 2830000 2 bbbb 38 20000 3中交26.25万 4 dddd 30 32000 需要使用spark向表中添加更多记录 例: 无姓名年龄工资 加上5 dddd 30 32000 应用程序可以通过剥离操作列并附加到表中,将新
提前感谢。在大多数情况下,你需要使用正确的工具和方法,并认识到任何限制;Hadoop基本上是不可变的 数据帧可以以不同的模式保存,但不能选择性地更新记录-pyspark、scala、R或JAVA与此无关,Cloudera的KUDU Storage manager除外,它有一个火花连接器,DF编写器可以使用,但在我上次使用它时,存在管理员不喜欢的安全限制 你能做什么
有几件事需要考虑。祝你好运。非常感谢你的指点。他们很有帮助,需要深入研究一些选项并决定前进的方向。好吧,我祝你成功,并希望你接受答案。我曾经遇到过这些问题,有各种各样的选择。您是否试图在每日增量负载上使用配置单元执行和升级(插入+更新)?如果是这样的话,那就是每天的覆盖。我们可能需要比这里的逻辑多一点来起草一个解决方案。你是怎么做到的?