等效于 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_duplicates
和 dropDuplicates
。它们是一样的吗?
【问题讨论】:
分享您的一些代码,这将有助于我们更好地理解问题。 【参考方案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?
等效于 Visual C++ 中 gcc 的 __attribute__ 格式