现在我的RDD中有300多列,但我发现需要动态选择一系列列并将它们放入LabledPoints数据类型中.作为Spark的新手,我想知道是否有任何索引方式可以在RDD中选择一系列列.像temp_data = data[, 101:211]R中的东西.有类似的东西val temp_data = data.filter(_.column_index in range(101:211)...吗?
任何想法都受到欢迎和赞赏.
如果我有一个大约有500列和2亿行的RDD,并且RDD.columns.indexOf("target", 0)显示Int = 77了我的目标因变量是在第77列.但我对如何选择所需(部分)列作为特征没有足够的知识(比如说)我想要23到59,111到357,399到489的列.我想知道我是否可以申请:
val data = rdd.map(col => new LabeledPoint(
col(77).toDouble, Vectors.dense(??.map(x => x.toDouble).toArray))
Run Code Online (Sandbox Code Playgroud)
任何建议或指导将不胜感激.
也许我搞砸了RDD与DataFrame,我可以将RDD转换为DataFrame,.toDF()或者使用DataFrame比RDD更容易实现目标.