Pyspark TextParsingException при зареждане на файл

Зареждам csv файл с 1 милион записа, използвайки pyspark, но получавам грешката. TextParsingException: Дължината на анализирания вход (1000001) надвишава максималния брой знаци, дефиниран в настройките на вашия анализатор (1000000)

Проверих дали някой от записите ми във файла има данни, по-големи от 1000000 знака, но нито един запис не е такъв. максималната дължина на записа в моя файл е 850.

Моля помогнете....

CODE SNIPPET:
        input_df =  spark.read.format('com.databricks.spark.csv').option("delimiter","\001").option("quote",u"\u0000").load(INPUT_PATH)
        input_df.write.mode('overwrite').format('orc').save(TARGET_LOC)

    SAMPLE DATA

        A    B     C
        --   --    --
        a   xyz"a  123
        b   pqr    456
        c   ABC"z  789

person Anil    schedule 05.03.2018    source източник
comment
Покажете вашия код и извадка от данни.   -  person Himaprasoon    schedule 05.03.2018
comment
Коя версия на искра? Имаше проблем (github.com/databricks/spark-csv/issues/295) за това във версии по-ранни от 2.0. Що се отнася до максималната дължина на записа, ако имате вложени кавички или специални знаци, според проблема spark се опита да добави толкова редове и след това се срина. –   -  person mkaran    schedule 05.03.2018
comment
версията на spark е 2.0.2. Изглежда, че моите данни имат вложени кавички, има ли начин да се справят с тях   -  person Anil    schedule 05.03.2018
comment
Бихте ли добавили кода, за да можем да видим какво още можете да направите, за да се справите с него?   -  person mkaran    schedule 05.03.2018
comment
@mkaran - редактира въпроса ми   -  person Anil    schedule 05.03.2018
comment
Вашият DF казва, че този разделител е \001, докато разделителят на вашите примерни данни изглежда е \t. Кой е правилният разделител?   -  person Bala    schedule 05.03.2018


Отговори (1)


Можете да промените настройката на анализатора, ограничавайки броя на символите на колони, като използвате

option("maxCharsPerColumn", "-1")

така че това сега трябва да работи като:

spark.read.format('com.databricks.spark.csv').option("delimiter","\001").option("quote",u"\u0000").option("maxCharsPerColumn", "-1").load(INPUT_PATH)

в противен случай можете също да опитате да промените анализатора си:

.option("parserLib", "commons")
person pratiklodha    schedule 05.03.2018