Я пытаюсь включить пакет spark-avro при запуске искровой оболочки в соответствии с инструкциями, упомянутыми здесь: https://github.com/databricks/spark-avro#with-spark-shell-or-spark-submit.пакет spark-avro databricks
искровой оболочка --packages com.databricks: искровой avro_2.10: 2.0.1
Моей цель заключается в преобразовании Avro схемы, чтобы зажечь тип схемы, используя SchemaConverter класса, присутствующий в пакете.
import com.databricks.spark.avro._ ... // colListDel - это список полей из avsc, которые должны быть делены по какой-либо функциональной причине.
for(field <- colListDel){
println(SchemaConverters.toSqlType(field.schema()).dataType);
}
...
Об исполнении выше цикла, я получаю ниже ошибки:
<console>:47: error: object SchemaConverters in package avro cannot be accessed in package com.databricks.spark.avro
println(SchemaConverters.toSqlType(field.schema()).dataType);
Пожалуйста, укажите, если есть что-то мне не хватает, или дайте мне знать, как включить SchemaConverter в моем scala-коде.
Ниже приведены мои данные envt: версия Spark: 1.6.0 Cloudera VM 5,7
Спасибо!
Вы когда-нибудь это понимали? Я столкнулся с той же ошибкой. – user3809888
Обходной путь: после выполнения команды пакета он загружает банки в какую-то скрытую папку: **. Ivy2/jars ** folder. Я использовал эти банки в пути к классам и написал специальный код scala для использования классов из библиотеки пакетов. Кажется внутренним schemaconverter является частным членом, и если вам нужно его настроить, проверяя необходимые условия лицензии. Позвольте мне знать, если это помогает. – hadooper
Вероятно, 2.0.1 не был построен из последней ветви 2.0. Я заметил, что этот класс был частным: https://github.com/databricks/spark-avro/blob/branch-1.0/src/main/scala/com/databricks/spark/avro/SchemaConverters.scala –