Я использую приведенный ниже фрагмент кода для чтения некоторого примера файла с использованием контекста искры
>>> textFile = sc.textFile("hdfs:///user/hive/warehouse/sample.txt")
>>> textFile.flatMap(lambda word:word.split(" ")).collect()
Предположим, что это выдает что-то вроде ниже
[u'hi', u'there,', u'I', u'am', u'working', u'on', u'something', u'random.']
Теперь я использую приведенный ниже фрагмент кода дляпрочитайте некоторый пример файла, используя фрейм данных, а затем попытайтесь преобразовать в rdd и применить flatmap, как это было сделано ранее
>>> df = spark.read.text("hdfs:///user/hive/warehouse/sample.txt")
>>> df.rdd.flatMap(lambda word:word.split(" ")).collect()
Это не удается с атрибутом Ошибка разделения.
Я продолжил проверять тип данныхdf.rdd и textFile, используя приведенный ниже фрагмент кода
>>> type(df.rdd)
<class 'pyspark.rdd.RDD'>
>>> type(textFile)
<class 'pyspark.rdd.RDD'>
Оба идентичные.
Теперь, когда я проверяю тип отдельных элементов этих Rdd, используя приведенный ниже фрагмент кода.Я наблюдаю разницу.
>>> textFile.map(lambda x:type(x)).collect()
[<type 'unicode'>]
>>> df.rdd.map(lambda x:type(x)).collect()
[<class 'pyspark.sql.types.Row'>]
Почему существует неуверенность