>백엔드 개발 >Golang >golang apache arrow로 구현된 datatype.go에 지정된 데이터 유형을 사용하여 스키마 구축

golang apache arrow로 구현된 datatype.go에 지정된 데이터 유형을 사용하여 스키마 구축

WBOY
WBOY앞으로
2024-02-06 08:36:07536검색

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

질문 내용

아파치 애로우를 배우고 있는데 스키마와 애로우 레코드를 생성하는 방법을 더 배우고 싶습니다. 이에 대해 몇 가지 자료를 참조했지만 지금까지는 모두 기본 유형을 사용하여 다음과 같은 패턴을 구축했습니다. `

으아악

사용하려는 기본 유형에 일부 데이터 유형이 존재하지 않습니다. 예를 들어 bool 또는 십진수128을 사용하고 싶습니다. 나는 golang arrow 라이브러리를 보다가 내가 사용하고 싶은 가능한 모든 데이터 유형이 포함된 파일 datatype.go을 발견했습니다. 하지만 여기의 유형은 패턴을 만들 때 필요한 datatype 유형이 아닙니다.

다음 세 가지 질문이 있습니다.

  1. 가능한 경우 datatype.go에서 이러한 데이터 유형을 사용하여 스키마를 어떻게 구축할 수 있나요?
  2. 십진수 형식을 사용하려면 소수점 이하 자릿수와 정밀도를 어떻게 지정하나요?
  3. 확장형을 사용한 예.

정답


datatype.go 中定义的这些数据类型命名常量已用于创建您想要的新类型的一部分。其中一些是 type decimal128type structtype booleantype struct 如果您检查这些结构的 id 方法的源代码,它们返回在 datatype.go 中定义的常量,其名称与结构的名称相似。这些结构已经实现了 datatype 接口,这意味着您可以将它们分配给 arrow.field.type 因为该字段的类型是 datatype에 정의된 상수라는 데이터 유형은 원하는 새로운 유형을 생성하는 과정의 일부로 사용되었습니다. 그 중 일부는

이러한 구조체의 id 메서드의 소스 코드를 확인하면 구조체 이름과 유사한 이름을 가진 bool 中定义的常量 datatype.godatatype_fixedwidth.go 中用作 type booleantype structid 에 정의된 상수를 반환합니다. 이러한 구조는 이미
인터페이스를 구현합니다. 즉, 필드 유형이 func (t *booleantype) id() 类型 { return bool }이므로 arrow.field.type에 할당할 수 있습니다.
내가 그들에게 의미하는 바는: type decimal128type struct bool에 정의된 상수
datatype_fixedwidth.go에서 func (*decimal128type) id() 类型 { return decimal128 }id 메소드의 반환 값으로 사용됩니다.

datatype

에도 마찬가지입니다.

type decimal128type struct.
datatype이 구조 중 하나에 대한 메서드는

인터페이스를 구현하고 있음을 보여줍니다.

으아악 type booleantype struct이러한 방법은

에 적합합니다.

type인터페이스의 정의:

으아악

도 달성했습니다.

따라서

필드에 사용할 수 있습니다. 으아악 예시:
으아악
출력:

으아악 🎜 🎜문서🎜에서 찾을 수 있습니다. 🎜 확장 유형과 관련된 것도 있습니다. 🎜 하지만 확장 유형에 익숙하지 않아 이에 대한 예를 보여줄 수 없습니다. 하지만 익숙해지면 쉽게 해결할 수 있습니다. 🎜

위 내용은 golang apache arrow로 구현된 datatype.go에 지정된 데이터 유형을 사용하여 스키마 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제