在此wiki 页面中,有一个corr()
计算 Pearson 相关系数的函数,但我的问题是:Hive 中是否有任何函数可以计算组中一对数字列的Kendall 相关系数?
Hive:如何计算组中一对数字列的 Kendall 相关系数?
数据挖掘
apache-hadoop
相关性
蜂巢
2021-09-30 15:42:05
1个回答
在 Hive 本身中?不幸的是,答案是否定的——正如语言定义手册所示,该统计信息根本没有内置。除了语言手册之外,您还可以在此处和此处获得有关 Hive 开发中统计信息的更多信息。
话虽如此,有很多方法可以根据 Hive 中的数据计算 Kendall 的 W。
您可以将数据写入文件或将其查询到 R 或统计包(如 SAS、Stat、MATLAB、Excel 等)中,然后运行计算,如有必要,将结果写回 Hive。
例如,在 R 中,您可以执行以下操作:
install.packages("RODBC")
require(RODBC)
db <- odbcConnect("Hive_DB")
hql <- "select * from table A"
data <- sqlQuery(db , hql)
kenw <- cor(x = data$a, y = data$b, method="kendall")
sqlSave(db, kenw, tablename = "new_table_of_kendall_coef")
或(如果使用 Linux 或 Unix)那么您可以使用RHive
而无需使用 ODBC 名称。
另一种解决方法是采用 Hive 中确实存在的函数(您链接到的函数)并使用自定义函数自己计算 Kendall 系数。至于如何具体实现这一点,您可能想在 Cross Validated (stats.stackexchange.com) 上发布。
其它你可能感兴趣的问题