PySpark-从Numpy矩阵创建DataFrame

Bry*_*ind 4 python arrays numpy pyspark spark-dataframe

我有一个numpy的矩阵:

arr = np.array([[2,3], [2,8], [2,3],[4,5]])
Run Code Online (Sandbox Code Playgroud)

我需要从创建一个PySpark数据框arr。我无法手动输入值,因为的长度/值arr将动态变化,因此我需要转换arr为数据框。

我尝试以下代码未成功。

df= sqlContext.createDataFrame(arr,["A", "B"])
Run Code Online (Sandbox Code Playgroud)

但是,出现以下错误。

TypeError: Can not infer schema for type: <type 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)

Pre*_*rem 5

希望这可以帮助!

import numpy as np

#sample data
arr = np.array([[2,3], [2,8], [2,3],[4,5]])

rdd1 = sc.parallelize(arr)
rdd2 = rdd1.map(lambda x: [int(i) for i in x])
df = rdd2.toDF(["A", "B"])
df.show()
Run Code Online (Sandbox Code Playgroud)

输出为:

+---+---+
|  A|  B|
+---+---+
|  2|  3|
|  2|  8|
|  2|  3|
|  4|  5|
+---+---+
Run Code Online (Sandbox Code Playgroud)


Azm*_*sov 5

无需使用 RDD API。简单地:

mat = np.random.random((10,3))
cols = ["ColA","ColB","ColC"]
df = spark.createDataFrame(mat.tolist(), cols)
df.show()
Run Code Online (Sandbox Code Playgroud)