如何在 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), "-"): 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))
我正在 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), "-"): 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))