2017-11-15 12 views
-1

spark_csvパッケージを使用してpysparkのtsvファイルを読み込もうとしています。私のスパークバージョンは1.6.3です。私のデータセットでは、2つの列は同じ名前です。私はデータを読むために次のコードを使用しています。私は、コードの上に使用して読んだとき、私は次の例外を取得pyspark tsv duplicate columns

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]" 

を、私が開始する前に重複する列をドロップする何らかの方法があれば知りたいのです。私は手前でスキーマを指定できることを知っています。しかし、実行時にスキーマを処理できるように、動的であることが必要です。 おかげ

答えて

0

これは、スパークの最近のバージョンで修正されました - https://issues.apache.org/jira/browse/SPARK-16896

アップグレードできない場合は、ヘッダーを自分で構築する必要があります。

+0

私は知っているが、私の問題は、私はスパーク2.2 – mc29