ProgramingTip

pyspark 데이터 프레임에 고유 한 열 값 표시 : python

bestdevel 2020. 11. 22. 20:21
반응형

pyspark 데이터 프레임에 고유 한 열 값 표시 : python


Pandas에 대한 pyspark 데이터 프레임 대안을 제안하십시오 df['col'].unique().

pyspark 데이터 프레임 열의 모든 값을 제공하고 싶습니다.

SQL 고유 방식이 아닙니다 (registertemplate 다음 값에 대한 SQL 쿼리).

또한 필요하지 않습니다 groupby->countDistinct. 대신 해당 열에서 고유 한 값을 확인하고 싶습니다.


다음과 같은 데이터 표현됨 작업 가정 해 보겠습니다 (2 개의 열 kv, 여기 k에는 3 개의 항목, 2 개의 고유 한 항목이 포함).

+---+---+
|  k|  v|
+---+---+
|foo|  1|
|bar|  2|
|foo|  3|
+---+---+

Pandas 데이터 프레임 사용 :

import pandas as pd
p_df = pd.DataFrame([("foo", 1), ("bar", 2), ("foo", 3)], columns=("k", "v"))
p_df['k'].unique()

이것은 ndarray, 즉array(['foo', 'bar'], dtype=object)

"pandas df [ 'col']. unique ()"에 대한 pyspark 데이터 프레임 대안을 요청했습니다. 이제 다음 Spark 데이터 프레임이 제공됩니다.

s_df = sqlContext.createDataFrame([("foo", 1), ("bar", 2), ("foo", 3)], ('k', 'v'))

Spark 에서 동일한 결과, 즉를 ndarray사용하신 toPandas()다음을 사용하십시오 .

s_df.toPandas()['k'].unique()

또는 ndarray특별한 필요하지 않고 열의 고유 값 목록이 필요한 경우 k:

s_df.select('k').distinct().rdd.map(lambda r: r[0]).collect()

마지막으로 다음과 같이 목록 이해를 사용할 수도 있습니다.

[i.k for i in s_df.select('k').distinct().collect()]

이렇게하면 열의 고유 한 값을 얻는 데 도움이됩니다.

df.select('column1').distinct().show()

df.dropDuplicates(['col1','col2'])배열의 colX를 기반으로 고유 한 행만 가져 오기를 사용할 수 있습니다 .


collect_set은 주어진 열에서 고유 한 값을 얻을 수있는 데 도움이 될 수 있습니다. pyspark.sql.DataFrame df.select(F.collect_set("column").alias("column")).first()["column"]

참고 URL : https://stackoverflow.com/questions/39383557/show-distinct-column-values-in-pyspark-dataframe-python

반응형