我必须在 pyspark(spark 2.0) 的大 DataFrame 中对列进行编码。所有的值几乎都是唯一的(大约10亿个值)。最好的选择可能是 StringIndexer,但由于某种原因它总是失败并终止我的 Spark 会话。我可以以某种方式编写这样的函数吗:
id_dict() = dict()
def indexer(x):
id_dict.setdefault(x, len(id_dict))
return id_dict[x]
Run Code Online (Sandbox Code Playgroud)
并使用 id_dict 将其映射到 DataFrame 保存 items()?这个字典会在每个执行器上同步吗?我需要所有这些来预处理 Spark.mllib ALS 模型的元组 ('x', 3, 5)。谢谢。