私はRで処理したい100GBのテーブルを持っています。私はcsvsにエクスポートすると、500個のcsvファイルを取得します。それらは - (Rがインストールされている仮想インスタンスのメモリを増やしても)保存/ロードできない巨大なデータテーブルを取得します。私は、元のテーブルを分割し、Rにエクスポートしてから別々のテーブルを処理するという、異なる姿勢を試したかったのです。問題は、私はいくつかのグループ化の途中でスプリットを "中断"したくないということです。たとえば、私の主な変数は「訪問」であり、訪問ごとに複数の行があります。私は別のサブテーブルに分割された訪問があることを望んでいません(Rでのすべての処理は、訪問をデータテーブルのグループ化変数として使用して行われます)。それをする最善の方法は何ですか?訪問IDを時間順に注文し、名前のみをspearate CSVなどにエクスポートしようとしました。試行ごとのすべての注文はエラーで終了します(リソースが不足しています)。テーブルには現在、100M以上の行と、64個の変数が含まれています。BigQueryでcsvにエクスポートし、巨大なテーブルでRをロード
2
A
答えて
1
私は違う態度を試してみたかった - 元のテーブルを分割...
問題は、私は、分割は、いくつかのグループ化の途中で「壊す」したいdin'tということです。以下は
あなたは、その後の間、これらのvisitidsのための行のみを抽出するためにそれらを使用できるように識別されている方法と同じVISITIDの行は、各バッチの最大値と最小VISITIDについて同じバッチ
になることを、このようなバッチを特定することです最小値と最大値、あなたの処理するデータのため制御サイズ
から
は、あなたが行
#legacySQL
SELECT
batch,
SUM(size) AS size,
COUNT(visitId) AS visitids_count,
MIN(visitId) AS visitId_min,
MAX(visitId) AS visitId_max
FROM (
SELECT
visitId,
size,
INTEGER(CEIL(total/1000000)) AS batch
FROM (
SELECT
visitId,
size,
SUM(size) OVER(ORDER BY visitId) AS total
FROM (
SELECT visitId, COUNT(1) AS size
FROM [yourproject:yourdataset.yourtable]
GROUP BY visitId
)
)
)
GROUP BY batch
- バッチ
のバイトサイズによってバッチ処理を使用すると、バッチサイズがバイト
の面でも1行のeastimated平均サイズで123以下を交換したいものは何でもして、以下の1000000000を交換してくださいバイト単位で
以上は、バッチの最小値と最大値を使用して元のテーブルを分割するのに役立ちますバッチが合理的に均等に
を大きさになりますので、上記VISITIDと(あなたの例のように)テーブルの行の比較的大きな数の行の正規分布を仮定し、このヘルプあなたはさらに注意を続行する ・ホープ
注2:あなたがmigrateしたいか、すでにそれを
#standardSQL
SELECT
batch,
SUM(size) AS size,
COUNT(visitId) AS visitids_count,
MIN(visitId) AS visitId_min,
MAX(visitId) AS visitId_max
FROM (
SELECT
visitId,
size,
CAST(CEIL(total/1000000) as INT64) AS batch
FROM (
SELECT
visitId,
size,
SUM(size) OVER(ORDER BY visitId) AS total
FROM (
SELECT visitId, COUNT(1) AS size
FROM `yourproject.yourdataset.yourtable`
GROUP BY visitId
)
)
)
GROUP BY batch
+0
ありがとうございます!これは完璧です! – user3017075
関連する問題
- 1. 巨大なMyISAMテーブルをInnoDBにチャンクでエクスポートするには?
- 2. PHP/PDOで大きなMySQLテーブルをCSVにエクスポート
- 3. R PostGreSQLを使用してRedshiftでテーブルをCSVにエクスポート
- 4. R data.frame/tblをGoogle BigQueryテーブルにエクスポートする
- 5. 巨大な.csvファイルを読む
- 6. 巨大なcsvファイルを扱う
- 7. リストボックス(テーブル)の巨大なデータ
- 8. 巨大なテーブルのMySQLアップデート
- 9. テーブルをCSVにエクスポート
- 10. 巨大なCSVファイルの高速grep
- 11. 巨大なシミュレーションを扱うR
- 12. クラウドストレージからbigqueryテーブルに5GBのcsvファイルをロードできません
- 13. 巨大なcsvを読んでデータフレームを作成する
- 14. テーブルをcsvにエクスポートできません
- 15. Tableauで巨大なcsvファイルを操作する
- 16. sedで巨大なCSVファイルを操作する
- 17. Cで巨大なCSVファイルを読み取る
- 18. Pythonで巨大なCSVファイルを逐次読み込みます
- 19. 巨大なcsvファイルで類似の列を検索
- 20. xp_cmdshellなしでCSVにSQL Server 2008 R2テーブルの内容をエクスポート
- 21. 巨大な生産テーブルのデータをコピー
- 22. htmlテーブルにエクスポートするcsvがIEで動作しない
- 23. 巨大なMySQLテーブルのINSERT ... SELECT
- 24. 巨大なmysqlテーブルの最適化
- 25. BigQueryで非パーティション表を作成する方法。 BigQueryでテーブルのテーブルSQLをエクスポートしていますか?
- 26. MySQLのサブクエリ巨大なテーブルでは非常に遅い
- 27. 巨大なCSVファイルを一度にSQL ServerにPythonで挿入するには?
- 28. 巨大なCSVファイルのデータを効率的に読み取る
- 29. PostgreSQLの巨大なテーブルにダウンタイムなしでカラムを追加する
- 30. BigQueryからGoogle Cloud Storageにテーブルをエクスポートできません
を使用している場合、私はすぐにレガシーSQLでそれを書いて実現するので、以下の場合は、標準SQLでのバージョンはどのようにデータGROを団子について賢明? –
@RomanLuštrik正確に何を意味するのかよく分かりません。私はグループでどうすればいいですか? – user3017075
ミハイルの答えを見て、それは私が意味するものです。 :) –