我在Hadoop集群中有一个大小为10GB的CSV文件,其中包含重复列。我尝试在SparkR中分析它,所以我使用spark-csv
软件包将其解析为DataFrame
:
df <- read.df(
sqlContext,
FILE_PATH,
source = "com.databricks.spark.csv",
header = "true",
mode = "DROPMALFORMED"
)
但是由于 df 中存在重复的 Email
列,如果我想选择该列,它会出错:
Email
列,如果我想选择该列,它会出错:select(df, 'Email')
15/11/19 15:41:58 ERROR RBackendHandler: select on 1422 failed
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
org.apache.spark.sql.AnalysisException: Reference 'Email' is ambiguous, could be: Email#350, Email#361.;
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolve(LogicalPlan.scala:278)
...
我想保留第一次出现的 Email
列并删除后面的列,应该如何操作?