ホームページ >バックエンド開発 >Golang >golang apache arrow によって実装された datatype.go で指定されたデータ型を使用してスキーマを構築します

golang apache arrow によって実装された datatype.go で指定されたデータ型を使用してスキーマを構築します

WBOY
WBOY転載
2024-02-06 08:36:07536ブラウズ

使用golang apache arrow实现的datatype.go中指定的数据类型来构建模式

質問内容

Apache arrowを学習していて、スキーマとarrowレコードの作成方法について詳しく知りたいです。このためにいくつかの資料を参照しましたが、これまでのところ、すべてプリミティブ型を使用して次のようなパターンを構築しているだけです。 リーリー

一部のデータ型は、使用したいプリミティブ型に存在しません。たとえば、bool または 10 進数 128 を使用したいとします。 golang arrow ライブラリを調べていたところ、使用したいすべての可能なデータ型が含まれているファイル

datatype.go を見つけました。 ただし、ここでの型は、スキーマの構築時に必要な datatype 型ではありません。

そこで、次の 3 つの質問があります:

    可能であれば、
  1. datatype.go のこれらのデータ型を使用してスキーマを構築するにはどうすればよいですか?
  2. 10 進数タイプを使用したい場合、精度と小数点以下の桁数を指定するにはどうすればよいですか?
  3. 拡張型の使用例。

正解


datatype.goで定義されているこれらのデータ型の名前付き定数は、型の新しい部分を作成するために使用されています。 。その一部は、type decmal128type structtype booleantype struct です。これらの構造体の id メソッドのソース コードを確認すると、それらは datatype で返されます。 .go で定義された定数には、構造体の名前と似た名前が付いています。これらの構造体はすでに datatype インターフェイスを実装しています。つまり、フィールドの型が datatype であるため、構造体を arrow.field.type に割り当てることができます。 私が彼らに言いたいのは:

bool datatype.go で定義された定数は、datatype_fixedwidth.gotype booleantype struct# の id ​​ として使用されます。 ## メソッドの戻り値。 func (t *booleantype) id() type { return bool }
同じことが type 128type struct
にも当てはまります。 func (*10 進数 128 型) id() 型 { 10 進数 128 を返す }
. これらの構造体のいずれかのメソッドは、

datatype

インターフェイスを実装していることを示しています: リーリー これらのメソッドは、

type 128type struct

に適用されます。 そして datatype
interface: の定義 リーリー

type booleantype struct

もそれを実装します。 したがって、これらを

type

フィールドに使用できます: リーリー 実証例:

リーリー

出力:

リーリー

これは、

ドキュメント

にあります。 拡張子の種類に関連するものもあります。 ただし、拡張子の種類については詳しくないので、例を示すことはできません。しかし、慣れていれば簡単に解決できます。

以上がgolang apache arrow によって実装された datatype.go で指定されたデータ型を使用してスキーマを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。