python - 带有标签和特征的 PySpark Row 与 LabeledPoint
问题描述
我看到了一个 PySpark Spark SQL 示例,其中该语法用于执行类似于在 Spark Mllib 中创建 LabeledPoint 的操作:
from pyspark.sql import Row
from pyspark.mllib.linalg import Vectors
rdd2 = rdd1.map(lambda x: Row(label=float(x[-1]), features=Vectors.dense(x[:-1]))
rdd2.take(2)
[Row(features=DenseVector([540.0, 0.0, 0.0, 162.0, 2.5, 1040.0, 676.0, 28.0]), label=79.99),
Row(features=DenseVector([540.0, 0.0, 0.0, 162.0, 2.5, 1055.0, 676.0, 28.0]), label=61.89)]
Spark Mllib 的替代方法是:
from pyspark.mllib.regression import LabeledPoint
rdd3 = rdd1.map(lambda x: LebeledPoint(label=float(x[-1]), features=Vectors.dense(x[:-1])))
rdd3.take(2)
[LabeledPoint(79.99, [540.0,0.0,0.0,162.0,2.5,1040.0,676.0,28.0]),
LabeledPoint(61.89, [540.0,0.0,0.0,162.0,2.5,1055.0,676.0,28.0])]
我想知道这两个示例是否有任何区别,是否一个比另一个更好?
解决方案
推荐阅读
- python - >> 和 Airflow 中的新行有什么区别?
- javascript - 为什么我的函数没有返回我想要的 JSON 数组项?
- javafx - IDEA下的JavaFX WebView
- python - 将字典键映射到值的问题
- amazon-web-services - 将 aws cli 切换到启用 mfa 的跨帐户
- r - R中的UTF-8编码
- angularjs - 如何等待http响应赋值?
- azure - Azure Cosmos DB - 创建容器时出现“RequestDisallowedByPolicy”错误
- python - 如何打印系列中第 75 个百分位以上的值?使用分位数(熊猫)
- solr - solr 查询“msg”:“未定义的字段文本”,“代码”:400