【发布时间】:2018-03-20 16:32:09
【问题描述】:
我想创建一个 pyspark 数据框,其中一列包含一系列整数的指定名称(这是为了输入 ALS 模型的RecommendForUserSubset 方法)。
所以我使用范围创建了一个整数列表,并发现this question 展示了如何使用 SQLContext 将列表制作成数据框。但由于我使用的是 SparkSession API,而不是较旧的 API,我不知道如何创建 SQLContext——根据 SQLContext 上的documentation,我可能不必:“从 Spark 2.0 开始,这已被 SparkSession 取代。但是,我们将类保留在此处是为了向后兼容。”
这是我要替换的代码:
dataset = sqlContext.createDataFrame(range(i, i+1000), ['session_idx'])
我也不知道是否应该将整数列表映射到元组列表,或者它是否会“正常工作”。
【问题讨论】:
-
试图创建一个具有整数范围的列,我在第一句话中就说了。当我切换到在 spark 上调用 createDataFrame 时,上面确实给了我一个类型错误,我认为当我使用以下方法将它更改为元组列表时它会消失: [tuple(x) for x in range(i, i+ 1000)],但类型错误仍然存在。 “TypeError:无法推断类型的架构:
”所以我不知道那里发生了什么。我改用 SparkSession 的 range 方法。 -
在下面查看我的答案,它应该可以澄清错误的含义
标签: python apache-spark pyspark