Versi Spark: 2.1
Sebagai contoh, di pyspark, saya membuat list
test_list = [['Hello', 'world'], ['I', 'am', 'fine']]
lalu bagaimana cara membuat dataframe dari test_list tersebut, dimana tipe dataframe-nya seperti di bawah ini:
DataFrame[words: array<string>]
berikut ini adalah caranya -
from pyspark.sql.types import *
cSchema = StructType([StructField("WordList", ArrayType(StringType()))])
# notice extra square brackets around each element of list
test_list = [['Hello', 'world']], [['I', 'am', 'fine']]
df = spark.createDataFrame(test_list,schema=cSchema)
saya harus bekerja dengan banyak kolom dan tipe - contoh di bawah ini memiliki satu kolom string dan satu kolom integer. Sedikit penyesuaian pada kode Pushkr's (di atas) memberikan:
from pyspark.sql.types import *
cSchema = StructType([StructField("Words", StringType())\
,StructField("total", IntegerType())])
test_list = [['Hello', 1], ['I am fine', 3]]
df = spark.createDataFrame(test_list,schema=cSchema)
keluaran:
df.show()
+---------+-----+
| Words|total|
+---------+-----+
| Hello| 1|
|I am fine| 3|
+---------+-----+
You can create a RDD first from the input and then convert to dataframe from the constructed RDD
<code>
import sqlContext.implicits._
val testList = Array(Array("Hello", "world"), Array("I", "am", "fine"))
// CREATE RDD
val testListRDD = sc.parallelize(testList)
val flatTestListRDD = testListRDD.flatMap(entry => entry)
// COnvert RDD to DF
val testListDF = flatTestListRDD.toDF
testListDF.show
</code>