等效于 pandas.DataFrame.set_index / drop_duplicates 与 dropDuplicates 的 Spark DataFrame

Posted

技术标签:

【中文标题】等效于 pandas.DataFrame.set_index / drop_duplicates 与 dropDuplicates 的 Spark DataFrame【英文标题】:Spark DataFrame equivalent of pandas.DataFrame.set_index / drop_duplicates vs. dropDuplicates 【发布时间】:2017-09-13 16:56:35 【问题描述】:

Spark DataFrames 的 drop duplicates 方法不起作用,我认为这是因为作为我的数据集一部分的索引列被视为一列数据。那里肯定有重复,我通过比较除索引以外的所有列上的COUNT()COUNT(DISTINCT()) 来检查它。我是 Spark DataFrames 的新手,但如果我使用的是 Pandas,此时我会在该列上执行 pandas.DataFrame.set_index

有谁知道如何处理这种情况?

其次,Spark DataFrame 上似乎有 2 个方法,drop_duplicatesdropDuplicates。它们是一样的吗?

【问题讨论】:

分享您的一些代码,这将有助于我们更好地理解问题。 【参考方案1】:

如果您不希望在检查不同记录时考虑索引列,可以使用以下命令删除该列或仅选择所需的列。

df = df.drop('p_index') // Pass column name to be dropped

df = df.select('name', 'age') // Pass the required columns

drop_duplicates() 是 dropDuplicates() 的别名。

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.dropDuplicates

【讨论】:

谢谢,也谢谢你的链接。 Spark 文档让我烦恼的是,当您将某些内容放入搜索引擎时,有一半的时间您会访问源代码而不是无用的文档。好的,那么会更喜欢不带下划线的 drop 命令,为什么它需要别名。关键是文档中的 subset 参数。它消除了对索引列做某事的担忧。

以上是关于等效于 pandas.DataFrame.set_index / drop_duplicates 与 dropDuplicates 的 Spark DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 等效于 ' __asm int 3 / DebugBreak() / Halt?

__call 等效于公共方法

等效于 Visual C++ 中 gcc 的 __attribute__ 格式

Elixir/Erlang 中的命名函数是不是有等效于 __MODULE__ 的方法?

_mm_srli_si128 等效于 altivec

属性警告未使用的结果等效于视觉 c