2017-07-13 14 views
7

Ambari'de kıvılcım 2.1.1 ve hadoop 2.6 kullanarak bir sorunum var.HDFS'den okunan ocr dosyaları okunduktan sonra kıvılcımlanmayan kıvılcım kıvılcımları

from pyspark.sql import SparkSession 

spark = SparkSession\ 
    .builder\ 
    .master('yarn')\ 
    .appName('localTest')\ 
    .getOrCreate() 

data = spark.read.format('orc').load('mydata/*.orc') 
data.select('colname').na.drop().describe(['colname']).show() 

+-------+------------------+ 
|summary| colname   | 
+-------+------------------+ 
| count|   1688264| 
| mean|17.963293650793652| 
| stddev|5.9136724822401425| 
| min|    0.5| 
| max|    87.5| 
+-------+------------------+ 

Bu değerler Toally mantıklı şunlardır: Önce benim yerel bilgisayarda beklendiği çalışır olarak (tek düğüm, yerel dosyaları) ve herşeyi kodumu test etti.

Şimdi bir Hadoop küme (Ambarı kurulumu iplik, 11 düğümler) benim veri yükledi ve

hadoop fs -put /home/username/mydata /mydata Şimdi aşağıdaki tabloda ile sona erdi aynı kodu test kullanılarak HDF'ler içine itti:

from pyspark.sql import SparkSession 

spark = SparkSession\ 
    .builder\ 
    .master('yarn')\ 
    .appName('localTest')\ 
    .getOrCreate() 

data = spark.read.format('orc').load('hdfs:///mydata/*.orc') 
data.select('colname').na.drop().describe(['colname']).show() 

+-------+------------------+ 
|summary| colname   | 
+-------+------------------+ 
| count|   2246009| 
| mean|1525.5387403802445| 
| stddev|16250.611372902456| 
| min|   -413050.0| 
| max|  1.6385821E7| 
+-------+------------------+ 

Ama başka bir şey tamamen bana kafa karıştırıcı -> Ben mydata/*.orcmydata/any_single_file.orc ve hdfs:///mydata/*.orchdfs:///mydata/any_single_file.orc iki tablodan (küme, yerel bilgisayar) aynı ...

01 olduğu geçtiğinizdeyseBu garip davranış hakkında daha fazla şey bilen var mı?

Çok teşekkürler!

+0

Dosya sayısının hdfs ve yerel makinenizde aynı olup olmadığını kontrol ettiniz mi? HDFS üzerinde yerel makineden daha fazlası gibi görünüyor ... –

+0

Aynı şey .. Eski bir Spark 1.6 sürümünü ambari current klasöründen denedim ve şu şekilde görünüyor:/ – Fabian

+0

Verilere göz atmanızı öneririm (10) ya da öyleyse, ve bir şey olup olmadığını görün ... –

cevap

0

Benim için "çözüm" aramasını bir hafta sonra, bazı dosyalarda şema biraz daha farklı (bir sütun az ya da çok) ve parke uygulanan bir şema birleştirme varken, orc desteklemiyordu şema https://issues.apache.org/jira/plugins/servlet/mobile#issue/SPARK-11412

Yani benim geçici çözüm orc dosyaları birer birer yük ve sonra onları dönüştürmek için df.write.parquet() yöntemi kullanılır .. şimdilik birleşir. Dönüşüm bittikten sonra. Dosya yolunda * .orc yerine * .parquet kullanarak hepsini yükleyebilirim.