2017-02-16 6 views
0

У меня есть dataframe с 320 строками. Я превратил его в ndjson с пандами:Pandas df to ndjson дает неверный подсчет строк

df.to_json('file.json', orient='records', lines=True) 

Однако при загрузке данных, я только получить 200 строк.

with open('file.json') as f: 
    print(len(f.readlines())) 

дает 200

spark.read.json('file.json').count 

также дает 200

только перегрузочные его панды дают рассчитывать правильный ряд:

pd.read_json('file.json', orient='records', lines=True) 

Мой набор данных содержит \n символы в полях. Я ожидаю, что у меня будет столько или больше строк, когда я загружу записи с помощью python или искры.

В чем проблема с методом pandas.to_json?

ответ

0

Я вручную проверил файл json по строкам, и я обнаружил, что pandas.to_json, кажется, неправильно пишет. (или я неправильно понял спецификации)

with open('file.json') as f: 
    j = f.read().replace('},{', '}\n{') 
with open('file.jsonl', 'w') as f: 
    f.write(j) 

Замена ошибок в файле устраняет проблемы.