首页 / 科技数码 / 正文

RDD转换成DataFrame的2方式

(1)使用反射推断模式 抽样确定

在创建DataFrame时,如果没有指定模式,就会使用printSchema()方法自带的模式定义。上一小节的DataFrame示例就是通过这种方法创建的。这种方法能够更为简便的创建DataFrame,但不能精细地控制DataFrame的模式。

(2)以编程方式指定模式 手动确定类型

% pyspark #导入类型 from pyspark . sql . types import * #生成以逗号分隔的数据 stringCSVRDD = sc . parallelize ( [ ( 123 , 'Katie' , 19 , 'brown' ) , ( 345 , 'Michael' , 20 , 'green' ) , ( 567 , 'Simone' , 21 , 'blue' ) ] ) #指定模式 schema = StructType ( [ StructField ( "id" , LongType ( ) , True ) , StructField ( "name" , StringType ( ) , True ) , StructField ( "age" , LongType ( ) , True ) , StructField ( "eyeColor" , StringType ( ) , True ) , ] ) #对RDD应用该模式并且创建DataFrame swimmers = spark . createDataFrame ( stringCSVRDD , schema ) #利用DataFrame创建一个临时视图 swimmers . createOrReplaceTempView ( "swimmers" ) #输出DataFrame中每个字段的类型 print ( "输出DataFrame中每个字段的类型:\n" ) swimmers . printSchema ( )

如有侵权请及时联系我们处理,转载请注明出处来自