数据集中的row_number。Row_number apis导致数据帧。
任何人都可以让我知道如何获取数据集中的row_number。Row_number apis导致数据帧。我不想将数据集转换为数据框,然后返回到仅用于row_number计算的数据集。
DatasetsSpark中的工作方式是,如果对它们应用任何转换,它们将转换为Dataframe内部转换,Dataset[Row]并且此行为仅符合逻辑。让我用一个例子向你解释一下。
假设您有以下案例类。
case class Person(SSN: Int, Name: String)
你有一个Dataset[Person]参考people
现在,如果你做people.withColumn("row_number", row_number())这个模式不再适合Person类,必须转换为泛型Row类型,因此Dataset[Person]成为Dataset[Row] / Dataframe。
因此,如果你想添加row_number并仍然希望它是一个Dataset[Person]我建议你在你的case类中添加一个额外的字段。
case class Person(SSN: Int, Name: String, row_number: Long)
这样,当您添加新列时,row_number每一行仍将符合案例类,Person并且不会转换为泛型Row类型。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。