2016-02-18 2 views
0

У меня есть файл s3 в формате json (имя_файла = a). Я прочитал его и создаю DataFrame (df), используя sqlContext.read.json. При проверке df.printSchema; схема не то, что я хочу. Поэтому я указываю свою собственную схему с двойным и строковым типом.Получить значения «Нет» после указания схемы и чтения json-файла в pyspark

Затем я перезагружаю данные json в dataframe (df3), указав приведенную выше схему, но когда я делаю df3.head (1), я вижу значения «Нет» для некоторых из моих переменных.

См ниже код -

df = sqlContext.read.json(os.path.join('file:///data','a')) 
print df.count() 
df.printSchema() 
df.na.fill(0) 

Указав свою собственную схему (СЧ). Поскольку код схемы длинный, я не включил его здесь.

sch=StructType(List(StructField(x,DoubleType,true),StructField(y,DoubleType,true))) 

f = sc.textFile(os.path.join('file:///data','a')) 
f_json = f.map(lambda x: json.loads(x))  
df3 = sqlContext.createDataFrame(f_json, sch) 
df3.head(1) 
[Row(x=85.7, y=None)] 

я получаю «None» значения для всех моих столбцов с DoubleType (тип данных) когда я df3.head (1) .AM я делаю что-то неправильно, когда я перезагрузить DF3 dataframe?

ответ

0

Я смог позаботиться о «None», выполнив df.na.fill (0)!