我在pyspark(2.1.0)中有一个SparkDataFrame,我希望只获取数字列的名称或仅获取字符串列.
例如,这是我的DF的架构:
root
|-- Gender: string (nullable = true)
|-- SeniorCitizen: string (nullable = true)
|-- MonthlyCharges: double (nullable = true)
|-- TotalCharges: double (nullable = true)
|-- Churn: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
这就是我需要的:
num_cols = [MonthlyCharges, TotalCharges]
str_cols = [Gender, SeniorCitizen, Churn]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?谢谢!
我在Spark中有两组数据(我们称它们为d1,d2)。我想执行两次样本Kolmogorov-Smirnov测试,以测试其基础人口分布函数是否不同。MLLib的Statistics.kolmogorovSmirnovTest可以这样做吗?
文档提供了以下示例:
import org.apache.spark.mllib.stat.Statistics
val data: RDD[Double] = ... // an RDD of sample data
// perform a KS test using a cumulative distribution function of our making
val myCDF: Double => Double = ...
val testResult2 = Statistics.kolmogorovSmirnovTest(data, myCDF)
Run Code Online (Sandbox Code Playgroud)
我尝试计算d2的经验累积分布函数(将其收集为Map)并将其与d1进行比较。
Statistics.kolmogorovSmirnovTest(d1, ecdf_map)
Run Code Online (Sandbox Code Playgroud)
测试运行,但结果错误。
难道我做错了什么?是否有可能做到这一点?有任何想法吗?
感谢您的帮助!