PySpark - 从 Numpy 矩阵创建 DataFrame
PySpark - Create DataFrame from Numpy Matrix
我有一个 numpy 矩阵:
arr = np.array([[2,3], [2,8], [2,3],[4,5]])
我需要从 arr
创建一个 PySpark 数据框。我无法手动输入值,因为 arr
的 length/values 会动态变化,所以我需要将 arr
转换为数据框。
我尝试了以下代码但没有成功。
df= sqlContext.createDataFrame(arr,["A", "B"])
但是,我收到以下错误。
TypeError: Can not infer schema for type: <type 'numpy.ndarray'>
import numpy as np
from pyspark.ml.linalg import Vectors
arr = np.array([[2,3], [2,8], [2,3],[4,5]])
df = np.concatenate(arr).reshape(1000,-1)
dff = map(lambda x: (int(x[0]), Vectors.dense(x[1:])), df)
mydf = spark.createDataFrame(dff,schema=["label", "features"])
mydf.show(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()
输出为:
+---+---+
| A| B|
+---+---+
| 2| 3|
| 2| 8|
| 2| 3|
| 4| 5|
+---+---+
无需使用 RDD API。只需:
mat = np.random.random((10,3))
cols = ["ColA","ColB","ColC"]
df = spark.createDataFrame(mat.tolist(), cols)
df.show()
我有一个 numpy 矩阵:
arr = np.array([[2,3], [2,8], [2,3],[4,5]])
我需要从 arr
创建一个 PySpark 数据框。我无法手动输入值,因为 arr
的 length/values 会动态变化,所以我需要将 arr
转换为数据框。
我尝试了以下代码但没有成功。
df= sqlContext.createDataFrame(arr,["A", "B"])
但是,我收到以下错误。
TypeError: Can not infer schema for type: <type 'numpy.ndarray'>
import numpy as np
from pyspark.ml.linalg import Vectors
arr = np.array([[2,3], [2,8], [2,3],[4,5]])
df = np.concatenate(arr).reshape(1000,-1)
dff = map(lambda x: (int(x[0]), Vectors.dense(x[1:])), df)
mydf = spark.createDataFrame(dff,schema=["label", "features"])
mydf.show(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()
输出为:
+---+---+
| A| B|
+---+---+
| 2| 3|
| 2| 8|
| 2| 3|
| 4| 5|
+---+---+
无需使用 RDD API。只需:
mat = np.random.random((10,3))
cols = ["ColA","ColB","ColC"]
df = spark.createDataFrame(mat.tolist(), cols)
df.show()