如何在 SparkDataFrame 上使用 strsplit

How to use strsplit on SparkDataFrame

我正在 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 documentation 中找到的 Spark 特定函数,而不是 strsplit。具体需要使用split_string函数,结合getItem函数(注意需要指定L强制数字为整数):

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