spark-shellを起動しているときに、ここに記載されている指示に従って、spark-avroパッケージをインクルードしようとしています:https://github.com/databricks/spark-avro#with-spark-shell-or-spark-submit。spark-avro databricks package
火花シェル--packagesのcom.databricks:火花avro_2.10:2.0.1
私の意図は、パッケージ内に存在SchemaConverterクラスを使用して、スキーマ・タイプを刺激するアブロスキーマを変換することです。
import com.databricks.spark.avro._... // colListDelは、何らかの機能上の理由で、deltのフィールドのリストです。
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を含める方法を教えてください私のスカラコードで。以下は
は私のenvtの詳細です: スパークバージョン:1.6.0 ClouderaのVM 5.7
ありがとう!
これはあなたがこれを理解しましたか?私は同じエラーに遭遇しています。 – user3809888
回避方法:packageコマンドを実行すると、いくつかの隠しフォルダ:**。ivy2/jars **フォルダにjarファイルがダウンロードされます。クラスパスでこれらのjarファイルを使用し、パッケージライブラリのクラスを使用するために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 –