pyspark tsv重复列

时间:2017-11-15 15:50:38

标签: apache-spark pyspark apache-spark-sql spark-csv

我正在尝试使用spark_csv包在pyspark中读取tsv文件。我的火花版是1.6.3。在我的数据集中,两列具有相同的名称。我正在使用以下代码来读取数据。

temp=sqlContext.read.load(data_file,
               format='com.databricks.spark.csv',
               header='true',
               delimiter='\t',
               mode='FAILFAST',
               codec="org.apache.hadoop.io.compress.GzipCodec").cache()

当我使用上面的代码阅读时,我得到以下异常:

pyspark.sql.utils.IllegalArgumentException: u"The header contains a duplicate entry: 'member_id' in [member_status, md5_hash_email, member_id, first_name, last_name, email_daily_double, email_personal_coupon_reminder, email_personal_shopping_offers, email_site_wide_sales, email_hot_deals_daily_newsletter, is_referral, traffic_source, traffic_source_type, traffic_source_subtype, signup_date_id, email_domain_group, first_order_date, first_shopping_date, is_mobile, is_tablet, is_pc, first_order_id, member_engaged, last_visit_date, last_order_date, last_shopping_date, total_order_amount, total_commission_amount, total_rebate_amount, total_cash_payments, number_of_cash_payments, life_cycle_stage, total_orders, member_id]"

所以,我想知道是否有一些在开始之前删除重复列。我知道我可以事先指定架构。但我希望它是动态的,以便我可以在运行时处理任何模式。 感谢

1 个答案:

答案 0 :(得分:0)

这已在最近版本的spark中修复 -  https://issues.apache.org/jira/browse/SPARK-16896

如果无法升级,则必须自己构建标题。