читать текстовый файл в pyspark2 - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь прочитать текстовый файл в spark 2.3, используя python, но я получаю эту ошибку.Это формат textFile в:

name marks
amar 100
babul 70
ram 98
krish 45

Код:

df=spark.read.option("header","true")\
    .option("delimiter"," ")\
    .option("inferSchema","true")\
    .schema(
        StructType(
            [
                StructField("Name",StringType()),
                StructField("marks",IntegerType())
            ]
        )
    )\
    .text("file:/home/maria_dev/prac.txt") 

Ошибка:

java.lang.AssertionError: assertion failed: Text data source only
produces a single data column named "value"

Пока я пытаюсьчитать текстовый файл в RDD, собирая его в один столбец.

Должен ли файл данных быть изменен или я должен изменить свой код?

1 Ответ

0 голосов
/ 18 сентября 2018

Вместо .text (создает только один столбец значений) используйте .csv для загрузки файла в DF.

>>> df=spark.read.option("header","true")\
    .option("delimiter"," ")\
    .option("inferSchema","true")\
    .schema(
        StructType(
            [
                StructField("Name",StringType()),
                StructField("marks",IntegerType())
            ]
        )
    )\
    .csv('file:///home/maria_dev/prac.txt') 

>>> from pyspark.sql.types import *
>>> df
DataFrame[Name: string, marks: int]
>>> df.show(10,False)
+-----+-----+
|Name |marks|
+-----+-----+
|amar |100  |
|babul|70   |
|ram  |98   |
|krish|45   |
+-----+-----+
...