Скажем, у меня есть некоторые данные подписки, которые выглядят следующим образом:
user_id subscription_id expires_at
0238423 113 12/1/18
0238423 938 11/1/18
0238423 901 10/1/18
Теперь я хочу создать новый столбец, который будет вызываться из столбцов subscription_id и expires_at:
user_id subscription_id expires_at Array_Col
0238423 113 12/1/18 [113, 12/1/18]
0238423 938 11/1/18 [938, 11/1/18]
0238423 901 10/1/18 [901, 10/1/18]
Проблема в том, что я не могу правильно определить тип структуры.Я использовал их как строки, но потом не могу перебрать их правильно.Я также хочу в конечном счете собирать_символ для этого столбца, чтобы создать массив массивов для каждого идентификатора пользователя.Что не так с моей структурой?
Вот мой код:
def create_struct(subscription_id, expires_at):
x = [subscription_id, expires_at]
return x
create_struct = udf(create_struct, ArrayType(StructType([
StructField("sub_id", StringType(), False),
StructField("expiration", TimestampType(), True)])))
df = df.withColumn('expiration_dict', create_struct(df.subscription_id, df.expires_at))