2017-04-24 125 views
0

我试图加载有一个CSV数据框,但我得到这个错误:Ambigouos列星火“数据”数据帧

Reference 'data' is ambiguous 

读书时,我定义模式,但可能是因为在CSV数据有它逗号的描述,该模式显示2分新列就叫“数据”:

root 
|-- CD_SK_PRODUTO_ATG: string (nullable = true) 
|-- CD_VENDA_PRODUTO: string (nullable = true) 
|-- CD_VENDA_REFIL: string (nullable = true) 
|-- NO_PRODUTO: string (nullable = true) 
|-- ID_REFIL: string (nullable = true) 
|-- DC_RECOMENDACAO_PUBLICO: string (nullable = true) 
|-- DC_USO: string (nullable = true) 
|-- NO_LINHA_PRODUTO: string (nullable = true) 
|-- CD_CONTEXTO: string (nullable = true) 
|-- DT_ULTIMA_ATUALIZACAO: string (nullable = true) 
|-- CD_USUARIO_ATUALIZACAO: string (nullable = true) 
|-- SG_PAIS: string (nullable = true) 
|-- data: date (nullable = true) 
|-- data: date (nullable = true) 

由于2只新列有我不能做与数据框什么相同的名称。我试图用df.drop()df.limit(1)删除列,选择只是一个df.select()情侣列,限制的结果,读取时推断模式...

但错误Reference 'data' is ambiguous仍显示。

任何人都有任何线索?

+0

你检查了'csv'文件中这些字段来自哪里? – mtoto

+0

CSV有12列。但是当我尝试在excel中打开它时,我猜测是因为评论中有逗号,几列出现错位。不幸的是,当CSV生成时我无法访问,因此我可以使用双引号修复列。我正在跳跃寻找某种功能,比如“dropErrors” –

+0

不能在文本编辑器中打开它吗? – mtoto

回答

0

感谢您的回应,伙计们!

梅赫雷兹的建议与一些改造工作。最终版本是这样的:

product_rdd = sc.textFile(product_path).map(lambda x: x.split('","')) 
results["PRODUCT_DATA"] = product_rdd.toDF(product_schema) 

我不得不使用",",不是最好的解决办法分裂,但再次工作了,需要我:)

谢谢!