Как импортировать CSV-файлы с большим количеством столбцов в Apache Spark 2.0

csv apache-spark pyspark apache-spark-mllib google-cloud-dataproc

1805 просмотра

1 ответ

Я 250000 columns of float64столкнулся с проблемой импорта нескольких небольших CSV-файлов в Apache Spark 2.0, работающем как кластер Google Dataproc. Есть несколько строковых столбцов, но на самом деле их интересует только 1 как метка класса.

Когда я запускаю следующее в pyspark

csvdata = spark.read.csv("gs://[bucket]/csv/*.csv", header=True,mode="DROPMALFORMED")

Я получаю

Файл "/usr/lib/spark/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py", строка 312, в get_return_value py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o53.csv. : com.univocity.parsers.common.TextParsingException: java.lang.ArrayIndexOutOfBoundsException - 20480 Подсказка: число обработанных столбцов, возможно, превысило ограничение в 20480 столбцов. Используйте settings.setMaxColumns (int), чтобы определить максимальное количество столбцов, которые могут иметь ваши входные данные. Убедитесь, что ваша конфигурация правильная, с разделителями, кавычками и escape-последовательностями, которые соответствуют формату ввода, который вы пытаетесь проанализировать.

  1. Где / как установить максимальные столбцы для парсера, чтобы использовать данные для машинного обучения.
  2. Есть ли лучший способ принять данные для использования с Apache MLLIB?

Этот вопрос указывает на определение класса для используемого фрейма данных, но возможно ли определить такой большой класс без необходимости создавать 210 000 записей?

Автор: mobcdi Источник Размещён: 09.11.2019 02:16

Ответы (1)


12 плюса

Решение

Используйте option:

spark.read.option("maxColumns", n).csv(...)

где nчисло столбцов.

Автор: user6022341 Размещён: 27.08.2016 07:59
Вопросы из категории :
32x32