Bekerja di pyspark kita sering perlu membuat DataFrame langsung dari daftar dan objek python. Skenario termasuk, namun tidak terbatas pada. perlengkapan untuk pengujian unit Spark, membuat DataFrame dari data yang dimuat dari sumber data khusus, mengonversi hasil dari perhitungan python (e. g. Panda, scikitlearn, dll. ) ke Spark DataFrame. user_df = spark.createDataFrame(data)6, seperti yang dijelaskan dalam Buat Spark DataFrame Dari Objek Python di pyspark, menyediakan metode yang nyaman user_df = spark.createDataFrame(data)7 untuk membuat Spark DataFrames. Metode ini menerima parameter berikut Show
Kami dapat menentukan skema menggunakan pendekatan yang berbeda
Mari kita lihat bagaimana metode user_df = spark.createDataFrame(data)_7 bekerja dalam beberapa skenario. Kami akan menggunakan daftar python sebagai parameter data. RDD dan Pandas DataFrame yang akan kita tinggalkan nantiBuat DataFrame pyspark Tanpa Menentukan Skema Saat skema tidak ditentukan, Spark mencoba menyimpulkan skema dari data aktual, menggunakan rasio pengambilan sampel yang disediakan. Nama kolom juga disimpulkan dari data user_df = spark.createDataFrame(data)9 objek sebagai user_df.show()+----------+---+------+0 Pertama kita akan membuat namedtuple user_row dan kemudian kita akan membuat daftar objek user_row from collections import namedtuple Sekarang kita dapat membuat bingkai data dan memeriksa skema yang disimpulkan user_df = spark.createDataFrame(data) Kami juga dapat memeriksa data dari DataFrame user_df.show()+----------+---+------+_ Masalah dengan metode ini adalah kami tidak memiliki kendali penuh atas skema yang disimpulkan. Terkadang inferensi skema juga gagal user_df.show()+----------+---+------+1 objek sebagai user_df.show()+----------+---+------+0 data_list = [ Pesan penghentian ditampilkan C:\apps\spark-2.4.0-bin-hadoop2.7\python\pyspark\sql\session.py:346: UserWarning: inferring schema from dict is deprecated,please use pyspark.sql.Row instead Memeriksa skema user_df.printSchema()root Memeriksa data user_df.show()+---+----------+------+Melewati daftar objek Baris sebagai user_df.show()+----------+---+------+0 Ada dua cara untuk membangun user_df.show()+----------+---+------+4 objek
Row(dob='1990-05-03', age=29, is_fan=True)
# Create row factory user_row Kami menggunakan metode kedua — pabrik baris from pyspark.sql import Row Sekarang kami membuat DataFrame dan memeriksa isinya user_df = spark.createDataFrame(data)0Buat pyspark DataFrame Menentukan Daftar Nama Kolom Saat skema ditetapkan sebagai daftar nama bidang, jenis bidang disimpulkan dari data user_df = spark.createDataFrame(data)_1 Ini masih mendukung metode lain untuk meneruskan data dengan bidang bernama, mis. g. daftar nametuple user_df = spark.createDataFrame(data)2Buat pyspark DataFrame Menentukan Skema sebagai StructType Dengan metode ini pertama-tama kita perlu membuat objek skema user_df.show()+----------+---+------+8 dan meneruskannya sebagai argumen kedua ke metode user_df = spark.createDataFrame(data)7 dari user_df = spark.createDataFrame(data)6 user_df = spark.createDataFrame(data)_3 Metode ini cukup bertele-tele Buat pyspark DataFrame Menentukan Skema sebagai tipe data StringDengan metode ini skema ditetapkan sebagai string. String menggunakan format yang sama dengan string yang dikembalikan oleh metode data_list = [ 1. data_list = [ _2 dan tanda kurung dapat dihilangkanString skema berikut ditafsirkan sama
user_df = spark.createDataFrame(data)4Lampiran A. Gunakan Skema JSONBuat Skema dari String JSON Pertama kita perlu mengurai string JSON ke dalam kamus python dan kemudian kita bisa menggunakan StructType. fromJSON untuk membuat objek StructType Bagaimana Anda mengubah objek menjadi DataFrame dengan Python?Konversi Daftar ke DataFrame dengan Python . 2) Menggunakan daftar dengan nama indeks dan kolom. Kita dapat membuat bingkai data dengan memberi nama pada kolom dan mengindeks baris. . 3) Menggunakan fungsi zip(). . 4) Membuat dari daftar multi-dimensi. . 5) Menggunakan daftar multidimensi dengan nama kolom. . 6) Menggunakan daftar dalam kamus Objek Python apa yang Anda masukkan ke DataFrame?astype() digunakan untuk mentransmisikan objek panda ke dtype tertentu.
Apa yang tidak dapat digunakan untuk membuat DataFrame?Anda tidak dapat menggunakan kamus tupel untuk membuat bingkai data.
Bagaimana Anda mengubah seri menjadi DataFrame?Dalam panda, mengonversi seri menjadi DataFrame adalah proses yang mudah. panda menggunakan metode to_frame() untuk dengan mudah mengubah rangkaian menjadi bingkai data. . Nama yang diteruskan harus menggantikan nama seri (jika ada) Kesalahannya adalah Tidak Ada Mengembalikan representasi DataFrame dari Seri |