タグ付けされた質問 「bigdata」

1
Pyspark dfからPostgresSQLに5,000万以上を書き込む、最も効率的なアプローチ
数百万のレコードを挿入する最も効率的な方法は、SparkデータフレームからPostgresテーブルに5,000万を挿入することです。私もこれまで成功したバルクコピーとバッチサイズオプションを利用して、これをSparkから MSSQLまで実現しました。 Postgresのためにここにあることができる同様のものはありますか? 私が試したコードとプロセスの実行にかかった時間を追加します: def inserter(): start = timer() sql_res.write.format("jdbc").option("numPartitions","5").option("batchsize","200000")\ .option("url", "jdbc:postgresql://xyz.com:5435/abc_db") \ .option("dbtable", "public.full_load").option("user", "root").option("password", "password").save() end = timer() print(timedelta(seconds=end-start)) inserter() したがって、1000万レコードに対して上記のアプローチを実行しnumPartitions、で指定されているように5つの並列接続があり、バッチサイズを200kにしてみました。 プロセスにかかった合計時間は0:14:05.760926(14分5秒)でした。 時間を短縮する他の効率的なアプローチはありますか? 私が使用できる効率的または最適なバッチサイズは何ですか?バッチサイズを大きくすると、作業が速くなりますか?または、複数の接続を開く、つまり5を超えると、プロセスが速くなりますか? 上千万レコードの平均14分悪くないですが、ヘルプにこの質問に答える前にこれをやっているだろうそこに人を探しています。

4
Rを使用してLucky 26ゲームを解く
私は息子がゲームによって引き起こされる問題を解決するためにコーディングをどのように使用できるかを示すとともに、Rがビッグデータを処理する方法を確認しようとしています。問題のゲームは「ラッキー26」と呼ばれます。このゲームでは、数字(重複なしの1〜12)は、星のデビッド(頂点6、交差6)上の12ポイントに配置され、4つの数字の6行はすべて26に追加する必要があります。約4億7900万の可能性(12P12 )明らかに144のソリューションがあります。これをRで次のようにコーディングしようとしましたが、メモリが問題のようです。時間があれば、回答を進めるためのアドバイスをいただければ幸いです。事前にメンバーに感謝します。 library(gtools) x=c() elements <- 12 for (i in 1:elements) { x[i]<-i } soln=c() y<-permutations(n=elements,r=elements,v=x) j<-nrow(y) for (i in 1:j) { L1 <- y[i,1] + y[i,3] + y[i,6] + y[i,8] L2 <- y[i,1] + y[i,4] + y[i,7] + y[i,11] L3 <- y[i,8] + y[i,9] + y[i,10] + y[i,11] L4 …
15 r  bigdata  permutation 

1
Apache Spark:結合に対する再パーティション化、並べ替え、キャッシュの影響
テーブルをそれ自体に結合するときのSparkの動作を調査しています。Databricksを使用しています。 私のダミーのシナリオは: 外部テーブルをデータフレームAとして読み取ります(基礎となるファイルはデルタ形式です) 特定の列のみが選択されたデータフレームBをデータフレームAとして定義する column1とcolumn2のデータフレームAとBを結合する (はい、あまり意味がありません。Sparkの基礎となるメカニズムを理解するために実験しているだけです) a = spark.read.table("table") \ .select("column1", "column2", "column3", "column4") \ .withColumn("columnA", lower((concat(col("column4"), lit("_"), col("column5"))))) b = a.select("column1", "column2", "columnA") c= a.join(b, how="left", on = ["column1", "column2"]) 私の最初の試みは、コードをそのまま実行することでした(試行1)。次に、パーティションの分割とキャッシュを試みました(2回試行)。 a = spark.read.table("table") \ .select("column1", "column2", "column3", "column4") \ .withColumn("columnA", lower((concat(col("column4"), lit("_"), col("column5"))))) .repartition(col("column1"), col("column2")).cache() 最後に、パーティションを分割し、並べ替え、キャッシュしました a = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.