pandas_df创建
RDD创建
spark_df创建
一、创建DF或者读入DF
以sql输出的结果创建df,这种形式最常用。
from pyspark.sql import SparkSession
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql.functions import *
df = spark.sql("select * from table_name")
也可以使用toDF()
from pyspark.sql import Row
row = Row("spe_id", "InOther")
x = ['x1','x2']
y = ['y1','y2']
new_df = sc.parallelize([row(x[i], y[i]) for i in range(2)]).toDF()
当然,也可以采用下面的方式创建DF,我们这里造了下面的数据集来说明df的一系列操作。
test = []
test.append((1, 'age', '30', 50, 40))
test.append((1, 'city', 'beijing', 50, 40))
test.append((1, 'gender', 'fale', 50, 40))
test.append((1, 'height', '172cm', 50, 40))
test.append((1, 'weight', '70kg', 50, 40))
df = spark.createDataFrame(test,['user_id', 'attr_name','attr_value', 'income', 'expenses'])
createDataFrame有一个参数,samplingRatio。这个参数的含义是:如果df的某列的类型不确定,则抽样百分之samplingRatio的数据来看是什么类型。因此,我们一般设定其为1。即,只要该列有1个数据不为空,该列的类型就不会为null。
RDD与spark_df
RDD-spark_df
dataframe = spark.createDataFrame(RDD)
spark_df-RDD
RDD = spark_df.rdd.map(lambda x:x)
pandas_df 与 spark_df转换
pandas_pd=saprk_df.toPandas()
spark_df = spark.createDataFrame(pandas_df)
本文介绍了如何在PySpark中进行数据类型转换,包括从pandas DataFrame创建Spark DataFrame,从原始数据创建RDD,以及RDD与Spark DataFrame之间的相互转换。详细讨论了`toDF()`函数、`createDataFrame()`方法,特别是`createDataFrame`的`samplingRatio`参数的作用,并探讨了pandas DataFrame到Spark DataFrame的转换操作。
308

被折叠的 条评论
为什么被折叠?



