r-如何在SparkDataFrame上使用strsplit



我正在迈出Azure Databricks世界的第一步,因此我必须学习如何使用SparkR

[我来自data.table]

虽然我读了很多文档,但我认为SparkDataFrame上有一些东西让我无法理解。

为了创建一个新的专栏,我了解到我们可以做一些事情,比如:

sdf$new <- sdf$old * 0.5

但如果我想使用一个基本功能,我会遇到一个错误,我不知道为什么:

sdf <- sql("select * from database.table")
sdf$new <- strsplit(sdf$old, "-")[1]
Error in strsplit((sdf$old), "-") : 
non-character argument
Some(<code style = 'font-size:10p'> Error in strsplit((sdf$old), &quot;-&quot;): non-character argument </code>)

我错过了什么?

谢谢。

您需要使用Spark R API文档中的Spark特定函数,而不是strsplit。具体来说,您需要使用split_string函数,并结合getItem函数(请注意,您需要指定L来强制数字为整数(:

new_df <- withColumn(sdf, "new_id", getItem(split_string(sdf$old, ","), 0L))

最新更新