Parquet から Go への int96 タイムスタンプのキャスト
はじめに
Parquet ファイルに格納されたタイムスタンプを操作する場合、int96 として表されるデータに遭遇するのが一般的です。データ型。この 12 バイト形式は、タイムスタンプと日付部分で構成されます。この int96 タイムスタンプを Go のタイムスタンプにキャストする方法を理解することは、データの操作と分析にとって非常に重要です。
int96 タイムスタンプのデコード
int96 タイムスタンプをデコードする鍵は、その構造を認識することにあります。最初の 8 バイトはタイムスタンプをナノ秒で表しますが、逆のバイト順で保存されます。
time_nano = ReverseBytes((timestamp[0:8]))
残りの 4 バイトは日付をユリウス日の数値で表します。
julian_day = ReverseBytes((timestamp[8:12]))
例計算
次の int96 タイムスタンプを考慮します: [128, 76, 69, 116, 64, 7, 0, 0, 48, 131, 37, 0].
- 時間 (ナノ秒): 最初の 8 バイトを反転すると、0x60FD4B3229000059682500 が得られます。これは、次のようになります。 45296秒(つまり、12 時間 34 分 56 秒)。
- 日付 (ユリウス日番号): 最後の 4 バイトを反転すると、0x00256859 が得られ、ユリウス日番号 2451545 に対応します。これは、ユリウス日番号 2451545 に対応します。 2000-01-01.
Golang コードの実装
デコード プロセスを示す Go コード スニペットは次のとおりです。
package main import ( "fmt" "math" ) func main() { // Sample int96 timestamp timestamp := []byte{128, 76, 69, 116, 64, 7, 0, 0, 48, 131, 37, 0} // Reverse the first 8 bytes for time (nanoseconds) timeNano := reverseBytes(timestamp[0:8]) // Reverse the last 4 bytes for date (Julian day number) julianDay := reverseBytes(timestamp[8:12]) // Convert timestamp nanoseconds to seconds seconds := float64(timeNano) / math.Pow(10, 9) // Calculate the timestamp t := time.Unix(int64(seconds), 0) // Create a new time object with date set from Julian day number t = t.AddDate(int(julianDay/365.25-2440587.5), 0, int(julianDay%365.25)) fmt.Println(t) } func reverseBytes(bytes []byte) uint64 { var result uint64 for _, v := range bytes { result = result
以上がint96 Parquet タイムスタンプを Go の time.Time に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

この記事では、コードのランタイム操作に使用されるGoの反射パッケージについて説明します。シリアル化、一般的なプログラミングなどに有益です。実行やメモリの使用量の増加、賢明な使用と最高のアドバイスなどのパフォーマンスコストについて警告します

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ホットトピック



