spark.ml에서 logit 모형을 만들었는데 예측 probability 컬럼의 schema가 VectorUDT였다. 이는 [0.9, 0.1]의 형태를 갖고 있었는데 이를 처리하기 위해 아래와 같은 방법으로 진행하였다.
1
2
3
4
5
6
7
8
9
frompyspark.sql.functions.Fimportudfdefget_prob(x):returnfloat(x[0])# wrap the function and s-tore as a variablemy_udf=udf(get_prob,FloatType())user_df=user_df.withColumn('probability',my_udf(user_df.probability))
날짜(DATE) ORDER BY
pyspark에서 sql쿼리 사용할 때, 날짜를 정렬해야하는 경우
ASC: 날짜가 가장 오래된 것부터 가장 최근 순으로 정렬
DESC: 반대
1
2
3
4
5
6
7
8
9
10
11
df=spark.sql("""
SELECT
*
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY id, sex ORDER BY dt ASC) as idx
FROM user_df
) u
WHERE u.idx == "1"
""")