Giridhar Pathak
06/04/2025, 7:03 PMGiridhar Pathak
06/04/2025, 7:06 PMRobert Howell
06/04/2025, 7:17 PMcol
--------------
[ {..}, {..} ] # row 1.
[ ] # row 2.
[ None, {..} ] # row 3.
[ {..}, None ] # row 4.
[ None ] # row 2.
And you want to return?
col
--------------
[ {..}, {..} ] # row 1.
[ ] # row 2.Giridhar Pathak
06/04/2025, 8:09 PMcol
__________________
[{message:"msg", "author": "ai"}]
[{message: "", "author": "ai"}]
[{message: null, "author": "ai"}]Giridhar Pathak
06/04/2025, 8:09 PMGiridhar Pathak
06/04/2025, 8:10 PMCory Grinstead
06/04/2025, 8:18 PMlist.filter function?
something like this?
message_key = daft.element().struct.get("message")
df.select(
daft.col("col").list.filter(
~message_key.is_null() and message_key != lit("")
)
)Giridhar Pathak
06/04/2025, 8:19 PMCory Grinstead
06/04/2025, 8:20 PMGiridhar Pathak
06/04/2025, 8:22 PMGiridhar Pathak
06/04/2025, 8:22 PMCory Grinstead
06/04/2025, 8:27 PMdf = daft.from_pydict({
"col": [
{"message": None, "author": "ai"},
{"message": "Hello", "author": "user"},
{"message": "", "author": "user"}
]
})
@daft.udf(return_dtype = daft.DataType.bool())
def filter_col_by_message(col: daft.Series) -> daft.Series:
return [item["message"] is not None and item["message"] != "" for item in col.to_pylist()]
df.filter(filter_col_by_message(df["col"])).collect()