将一行数据帧拆分为spark中的多行。数据框只有一列,其中包含一个字符串值数组

时间:2017-05-03 07:22:00

标签: apache-spark split spark-dataframe

我有一个csv文件,我正在阅读火花。 我正在阅读的唯一列有一个时间值数组。我希望每次值都是不同的行。我尝试了几种不同的东西,比如爆炸,但它们似乎对我不起作用。

val checkin_data=sqlContext.read
                            .format("com.databricks.spark.csv")
                            .option("header", "true")
                            .load("/home/saurabh/Projects/BigData/Datasets/YelpDataSet/yelp_academic_dataset_checkin.csv")
                            .select("time")

如果我选择第一行,这是我得到的结果

checkin_data.first()

[[u'Fri-0:2',u'Sat-0:1',u'Sun-0:1',u'Wed-0:2',u'Sat-1:2', u'Thu-1:1',u'Wed-1:1',u'Sat-2:1',u'Sun-2:2',u'Thu-2:1',u'Wed-2 :1',u'Fri-3:1',u'Sun-3:3',u'Thu-4:1',u'Tue-4:1',u'Sun-6:1',你'Wed-6:1',u'Fri-10:1',u'Sat-10:1',u'Mon-11:1',u'Wed-11:2',u'Mon-12: 1',u'Sat-12:1',u'Tue-12:1',u'Sat-13:2',u'Thu-13:1',u'Tue-13:2',你' Wed-13:2',u'Fri-14:2',u'Sat-14:1',u'Wed-14:1',u'Fri-15:1',u'Sat-15:1 ',u'Thu-15:1',u'Tue-15:1',u'Fri-16:1',u'Sat-16:2',u'Sun-16:1',u'Tue -16:1',u'Sat-17:3',u'Sun-17:1',u'Fri-18:1',u'Mon-18:1',u'Sat-18:2' ,u'Sun-18:1',u'Tue-18:2',u'Wed-18:1',u'Fri-19:2',u'Mon-19:1',你的 - 19:2',u'Thu-19:1',u'Wed-19:1',u'Mon-20:1',u'Sun-20:5',u'Thu-20:1', u'Tue-20:1',u'Wed-20:2',u'Fri-21:2',u'Sun-21:1',u'Thu-21:4',u'Tue-21 :1',u'Wed-21:1',u'Fri-22:1',u'Thu-22:1',u'Fri-23:1',u'Mon-23:1',你'星期二23:3',你 - 23:1',u'Thu-23:2',u'Tue-23:1']]

有没有办法可以将每一行转换为多行?

周五-0:2

周六-0:1

孙-0:1

Wed-0:2

卫星1:2

周四-1:1

我是新手,如果我无法解释这一点,我很抱歉。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

SparkSql的explode方法可以帮到你!

以下是post可能会有所帮助。