Büyük CSV dosyalarını yüklemek ve bunları ortak bir sütuna eklemek için Spark SQL kullanıyorum. Kodumdaki birleştirme işlemini gerçekleştirdikten sonra, tabloyu yeni bir CSV dosyasına geri yüklemek istiyorum. Bunu yapmak için DataFrame'in write()
yöntemini kullanıyorum. Dosya incelendiğinde, daha sonra üstbilginin takip ettiği üstbilginin birden çok kez basıldığını gördüm. Örneğin:Spark SQL
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
Bob, 34, 123 Fake St, Programmer, 10000000
June, 23, 5 Tree Ave., College Student, 15000
Rick, 12, 43 Ware St., Student, 0
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
<more data here>
Bu çıkış DataFrame sınıfının show()
yöntem konsola tabloyu yazdırır ve ben beklediğiniz görüntüler, özellikle de beklenmedik bir durumdur.
ben yazma gerçekleştirmek için kullanıyorum kodu:
bigTable.write().mode(SaveMode.Overwrite).format("com.databricks.spark.csv")
.option("header", "true").save(settings.getValue().outputDir +"/bigTable.csv");
veri değerleri doğru CSV kaydedilir ayarı option("header", "false")
kullanarak. Bu bir hata mı?
Kaynak csv dosyaları nedir? bunları spark-csv ile nasıl okuyorsunuz? @MiladKhajavi'nin sorduğu –
'un nedeni, eğer metin dosyalarıysa ve onlara hadoop fs -text/my/dir/* ile bakıyorsanız, muhtemelen birden fazla dosyaya sahip olursunuz. –
@MiladKhajavi, Ben bunları Spark SQL ile okuyorum (özellikle Databricks 'API'sını kullanarak). Birkaç CSV dosyasından okuyor, ancak Spark SQL dataframes kullanarak bunları bir araya getiriyorum. Bir kez katıldıklarında, sadece 1 başlık satırı olacağını tahmin ediyorum. – dmux