Pandas df ndjson дает неверный счетчик строк

У меня есть датафрейм с 320 строками. Я преобразовал его в 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 или Spark.

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

1 ответ

Я вручную проверял файл 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)

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

Другие вопросы по тегам