我使用Impala构建了一个包含目标和数百个功能的表格。 我想使用Spark MLlib来训练模型。 我明白,为了通过Spark运行分布式监督模型,数据需要采用多种格式之一。 LabeledPoint对我来说似乎是最直观的。 使用PySpark将Hive表转换为Labeled Points的最有效方法是什么?如何将Hive表转换为MLlib LabeledPoint?
0
A
回答
3
这个问题的最佳解决方案可能使用ml库,它是模型,因为它们直接作用于数据框。
然而,毫升API还没有达到与mllib功能平价又和你需要的东西可能会丢失。所以我们通过调用由hive上下文检索的数据框上的映射来解决我们工作流中的这个问题。
from pyspark import SparkContext, HiveContext
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.classification import LogisticRegressionWithLBFGS
table_name = "MyTable"
target_col = "MyTargetCol"
sc = SparkContext()
hc = HiveContext(sc)
# get the table from the hive context
df = hc.table(table_name)
# reorder columns so that we know the index of the target column
df = df.select(target_col, *[col for col in dataframe.columns if col != target_col])
# map through the data to produce an rdd of labeled points
rdd_of_labeled_points = df.map(lambda row: LabeledPoint(row[0], row[1:]))
# use the rdd as input to a model
model = LogisticRegressionWithLBFGS.train(rdd_of_labeled_points)
请记住,任何时候你映射蟒蛇,需要被对面的JVM的Python的虚拟机封的数据和性能会受到影响,因为这一点。我们发现,使用地图造成的性能对我们的数据而言可忽略不计,但您的里程可能会有所不同。
相关问题
- 1. 将Hive表转换为MySQL
- 2. 如何将Pandas的DataFrame转换为Spark中的DataFrame或LabeledPoint?
- 3. Spark:如何将LabeledPoint特征值从int转换为0/1?
- 4. Apache Spark MLlib LabeledPoint空标签问题
- 5. Apache Spark MLlib - 从数据获取LabeledPoint(Java)
- 6. 如何将ML模型转换为MLlib模型?
- 7. 如何将字符串从csv转换为Apache Spark MLlib
- 8. 如何将ML VectorUDT功能从.mllib转换为.ml类型
- 9. 将LabeledPoint的RDD转换为DataFrame到DF()错误
- 10. 将hive sql查询转换为Spark
- 11. 将Hive地图转换为Redshift JSON
- 12. 将TeraData查询转换为Hive
- 13. 将PL/SQL转换为Hive QL
- 14. 如何将RDBMS DDL转换为Hive DDL脚本
- 15. 如何将hive查询转换为抽象语法树?
- 16. 如何将ISO日期转换为Hive中的UTC日期
- 17. 如何将epoch时间戳转换为hive中的PST日期
- 18. 如何将数组转换为hive sql中的字符串?
- 19. Apache Hive:如何将字符串转换为时间戳?
- 20. 如何将sqlite3表转换为postgresql表?
- 21. 在Spark MLlib中,如何将字符串转换为spark scala中的整数?
- 22. 创作RDD [LabeledPoint]:java.lang.ClassCastException:java.lang.Long中不能转换为java.lang.Double中
- 23. 在Java中为Apache Spark MLlib创建LabeledPoint特性的最佳方法
- 24. 如何将ML稀疏矢量类型的变量转换为MLlib稀疏矢量类型?
- 25. Hive:如何转换毫秒时间戳?
- 26. 如何将会话转换为列表?
- 27. 如何将列表转换为数组?
- 28. 如何将Pandas DataFrame转换为列表?
- 29. 如何将列表转换为JavaRDD
- 30. 如何将html表转换为pdf?