【问题标题】:How to rename columns in Sparklyr in R?如何在 R 中重命名 Sparklyr 中的列?
【发布时间】:2018-10-29 05:03:50
【问题描述】:

这是我通过 Spark Cluster 在 R 中使用的代码,下面也给出了错误

mydata<-spark_read_csv(spark_cluster,name = "rd_1",path = "IAF_Extracted_Data_Zipped.csv",header = F,delimiter = "|")

mydata %>% select(customer=V1,device_subscriber_id=V2,user_subscriber_id=V3,user_id=V4,location_id=V5) 

.f(.x[[i]], ...) 中的错误:找不到对象“V1”

【问题讨论】:

  • 您能否提供str(mydata) 的输出。另外,为了确保正确理解,customer, device_subscriber_id, etc 你的新名字对吗?还是那些存在的对象?
  • 是的....这些是新名字

标签: r apache-spark apache-spark-sql sparklyr


【解决方案1】:

重命名约定正好相反 (new name = old name)

您正在寻找以下内容:

mydata %>% 
    select(V1 = customer,
           V2 = device_subscriber_id,
           V3 = user_subscriber_id,
           V4 = user_id,
           V5 = location_id) 

【讨论】:

  • V1....V5 是我要更改的默认列名...您不认为它应该是 newname=oldname 吗?
  • 我收到类似错误:查询不包含列
  • 为什么不试试dplyr::select 而不是select
  • 但是,我要检查的第一件事(数据源)对我不可用。有一个可重现的例子会很棒
【解决方案2】:

如果您想要特定名称,只需在读取时提供名称向量:

columns <- c("customer", "device_subscriber_id", 
             "user_subscriber_id", "user_id", "location_id")

spark_read_csv(
   spark_cluster, name = "rd_1",path = "IAF_Extracted_Data_Zipped.csv",
   header = FALSE, columns = columns, delimiter = "|"
)

columns 的数量应与输入中的列数匹配。

【讨论】:

    【解决方案3】:

    您可以尝试customer = mydata$V1 和类似的其他变量(假设V1,...mydata 的列名)。

    【讨论】:

    • 这是我使用 mydata$column 名称时得到的......错误:查询不包含列
    猜你喜欢
    • 2017-02-20
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2020-05-19
    • 2015-10-21
    相关资源
    最近更新 更多