6

スパークシェルを使用してフィールド名を表示する方法を決定しましたが、見苦しく、型が含まれていません

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

println(sqlContext.parquetFile(path))

プリント:

ParquetTableScan [cust_id#114,blar_field#115,blar_field2#116], (ParquetRelation /blar/blar), None
4

3 に答える 3

11

これを行うことができるはずです:

sqlContext.read.parquet(path).printSchema()

スパークドキュメントから:

// Print the schema in a tree format
df.printSchema()
// root
// |-- age: long (nullable = true)
// |-- name: string (nullable = true)
于 2015-10-29T20:33:00.117 に答える
1

OK、私はそれを行うためのOKな方法を持っていると思います。最初の行を覗いてスキームを推測してください。(これがどれほどエレガントかはわかりませんが、たまたま空の場合はどうなりますか??もっと良い解決策があるはずです)

sqlContext.parquetFile(p).first()

ある時点で次のように表示されます。

{
  optional binary cust_id;
  optional binary blar;
  optional double foo;
}
 fileSchema: message schema {
  optional binary cust_id;
  optional binary blar;
  optional double foo;
}
于 2015-03-06T18:12:10.117 に答える
0

parquetFile() の結果は、.printSchema() メソッドを持つ SchemaRDD (1.2) または DataFrame (1.3) です。

于 2015-03-21T14:37:24.917 に答える