我正在迈出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文档中的Spark特定函数,而不是strsplit
。具体来说,您需要使用split_string
函数,并结合getItem
函数(请注意,您需要指定L
来强制数字为整数(:
new_df <- withColumn(sdf, "new_id", getItem(split_string(sdf$old, ","), 0L))