Apache arrowを学習していて、スキーマとarrowレコードの作成方法について詳しく知りたいです。このためにいくつかの資料を参照しましたが、これまでのところ、すべてプリミティブ型を使用して次のようなパターンを構築しているだけです。 リーリー
一部のデータ型は、使用したいプリミティブ型に存在しません。たとえば、bool または 10 進数 128 を使用したいとします。 golang arrow ライブラリを調べていたところ、使用したいすべての可能なデータ型が含まれているファイルdatatype.go を見つけました。
ただし、ここでの型は、スキーマの構築時に必要な
datatype 型ではありません。
のこれらのデータ型を使用してスキーマを構築するにはどうすればよいですか?
datatype.goで定義されているこれらのデータ型の名前付き定数は、型の新しい部分を作成するために使用されています。 。その一部は、
type decmal128type struct と
type booleantype struct です。これらの構造体の
id メソッドのソース コードを確認すると、それらは
datatype で返されます。 .go で定義された定数には、構造体の名前と似た名前が付いています。これらの構造体はすでに
datatype インターフェイスを実装しています。つまり、フィールドの型が
datatype であるため、構造体を
arrow.field.type に割り当てることができます。
私が彼らに言いたいのは:
bool
datatype.go で定義された定数は、
datatype_fixedwidth.go で
type booleantype struct# の id
として使用されます。 ## メソッドの戻り値。
func (t *booleantype) id() type { return bool }
同じことが
type 128type struct
にも当てはまります。
func (*10 進数 128 型) id() 型 { 10 進数 128 を返す }
.
これらの構造体のいずれかのメソッドは、
インターフェイスを実装していることを示しています:
リーリー
これらのメソッドは、
に適用されます。
そして
datatype
interface: の定義
リーリー
もそれを実装します。
したがって、これらを
フィールドに使用できます:
リーリー
実証例:
出力:
リーリーこれは、
ドキュメントにあります。
拡張子の種類に関連するものもあります。
ただし、拡張子の種類については詳しくないので、例を示すことはできません。しかし、慣れていれば簡単に解決できます。
以上がgolang apache arrow によって実装された datatype.go で指定されたデータ型を使用してスキーマを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。