Memandangkan data terus berkembang, keperluan untuk analisis dan pemprosesan data menjadi semakin penting. Oleh itu, semakin ramai orang kini mula mengintegrasikan PHP dan Apache Spark untuk mencapai analisis dan pemprosesan data. Dalam artikel ini, kami akan membincangkan apa itu PHP dan Apache Spark, cara mengintegrasikan kedua-duanya, dan menggunakan contoh untuk menggambarkan analisis data bersepadu dan proses pemprosesan.
Apakah itu PHP dan Apache Spark?
PHP ialah bahasa skrip sumber terbuka tujuan umum yang digunakan terutamanya untuk pembangunan web dan skrip sebelah pelayan. Ia digunakan secara meluas dalam pembangunan infrastruktur Internet dan penyelesaian perusahaan. PHP menyokong pelbagai pangkalan data, termasuk MySQL, PostgreSQL, Oracle, dll.
Apache Spark ialah enjin pengkomputeran teragih yang pantas, yang digunakan terutamanya untuk pemprosesan data berskala besar dan pembelajaran mesin. Kelebihan Spark ialah kelajuan pantas, kebolehskalaan yang baik, sokongan untuk pelbagai bahasa (seperti Python, Java, Scala dan R), sokongan untuk pelbagai sumber data, kemudahan penggunaan dan sokongan untuk pemprosesan masa nyata.
Sepadukan PHP dan Apache Spark
Untuk menyepadukan PHP dan Apache Spark, kita perlu menggunakan perpustakaan masa jalan Spark dan antara muka PHP untuk memanggilnya.
Pertama, kita perlu memasang modul sambungan PHP yang dipanggil php-spark. Ia menyediakan persekitaran masa jalan PHP supaya kod PHP boleh berinteraksi dengan enjin pengkomputeran pada Spark. Modul sambungan ini adalah berdasarkan API Spark Java dan menyediakan antara muka PHP.
Kemudian, kita perlu menghidupkan enjin pengkomputeran pada Spark. Ini boleh dilakukan dengan menjalankan program Spark-shell atau Scala dari baris arahan. Perintah menggunakan Spark-shell kelihatan seperti ini:
$ spark-shell
Atau menggunakan kod Scala:
import org.apache.spark.{SparkConf, SparkContext} val conf = new SparkConf().setAppName("My App") val sc = new SparkContext(conf)
Seterusnya, kita perlu menggunakan modul sambungan php-spark untuk menyambung ke gugusan pada Spark. Dalam skrip PHP, gunakan kod berikut:
$connstr = "SPARK_MASTER"; $conf = new SparkConf()->setMaster($connstr)->setAppName("My App"); $sc = new SparkContext($conf);
Kod ini akan menjadikan skrip PHP bersambung ke gugusan Spark dan menetapkan nama aplikasi kepada "Aplikasi Saya".
Sekarang kami disambungkan ke gugusan Spark, kami boleh menggunakan API dalam Spark untuk melaksanakan pelbagai analisis data dan operasi pemprosesan. Di bawah ini kami menggunakan contoh mudah untuk menggambarkan cara menggunakan Spark untuk analisis dan pemprosesan data.
Contoh analisis dan pemprosesan data
Kami ingin memproses fail CSV yang mengandungi senarai beli-belah pelanggan, yang termasuk nama produk, harga dan kuantiti. Tugas kami adalah untuk mengira jumlah jualan dan volum jualan setiap item.
Pertama, kita perlu mencipta RDD (Resilient Distributed Dataset) pada Spark untuk membaca fail CSV. Ini boleh dilakukan dengan menggunakan kod berikut dalam skrip PHP:
$lines = $sc->textFile("data.csv");
Seterusnya, kita perlu membahagikan setiap baris data kepada tiga bahagian: item, harga dan kuantiti, dan menyimpannya sebagai tupel yang mengandungi item, harga dan kuantiti . Pelaksanaan menggunakan kod PHP adalah seperti berikut:
$items = $lines->map(function ($line) { $parts = explode(",", $line); $item = array(); $item["name"] = str_replace('"', '', $parts[0]); $item["price"] = floatval(str_replace('"', '', $parts[1])); $item["qty"] = intval($parts[2]); return $item; });
Kini, kita boleh menggunakan fungsi peta Spark untuk menukar setiap tuple produk dan memetakannya menjadi sepasang tupel baharu: nama produk dan jumlah jualan. Dilaksanakan menggunakan PHP seperti berikut:
$revenue = $items->map(function ($item) { $revenue = $item["price"] * $item["qty"]; return array($item["name"], $revenue); });
Kod ini memetakan setiap tuple item kepada tuple baharu yang mengandungi nama item dan jumlah jualan.
Akhir sekali, kita boleh menggunakan fungsi reduceByKey Spark untuk mengira jumlah jualan setiap item. Gunakan kod PHP untuk melaksanakannya seperti berikut:
$results = $revenue->reduceByKey(function ($x, $y) { return $x + $y; })->collect();
Kod ini menggunakan fungsi reduceByKey untuk mengumpulkan mengikut nama produk dan menjumlahkan semua jualan dalam kumpulan yang sama. Fungsi collect kemudian mengumpul semua hasil ke dalam tatasusunan yang mengandungi nama dan jumlah jualan setiap item.
Kesimpulan
Dalam artikel ini, kami mempelajari tentang PHP dan Apache Spark dan membincangkan cara mengintegrasikannya untuk analisis dan pemprosesan data. Kami juga menunjukkan cara menggunakan Spark untuk menganalisis dan memproses data melalui contoh. Penyepaduan PHP dan Apache Spark menawarkan banyak kelebihan, termasuk kemudahan penggunaan, kebolehskalaan dan prestasi tinggi. Ia boleh berguna dalam apa jua bidang, terutamanya dalam bidang pembelajaran mesin dan pemprosesan data besar.
Atas ialah kandungan terperinci Penyepaduan PHP dan Apache Spark untuk analisis dan pemprosesan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!