Как преобразовать текстовый файл с разделителями трубы в CSV-файл в Pyspark? - PullRequest
0 голосов
/ 05 октября 2018

Я читаю текстовый файл с разделителями трубы из hdfs.Я хочу сохранить этот файл как фрейм данных для дальнейших операций, связанных с фреймом pyspark. Я могу прочитать файл из hdfs, теперь я хочу знать, как преобразовать его в фрейм данных.Возможно ли это?

input=sc.textFile("hdfs://host/user/data/file1.txt") ## it is RDD 

, если это невозможно в первом случае, то при втором подходе я хочу преобразовать этот полный файл в формат csv, и для этого я хочу заменить канал "|"Символ через запятую "," из любого места, а затем хотите сохранить этот файл как CSV и после этого хотите преобразовать в dataframe.Пожалуйста, дайте мне знать, как решить эту проблему в pyspark-2.2.0.

1 Ответ

0 голосов
/ 05 октября 2018
input=sc.textFile("hdfs://host/user/data/file1.txt") ## it is RDD 

Вы можете использовать это для преобразования rdd в DataFrame.Мы имеем «sc» как SparkContext .

toDF ()

input.toDF()

Для этого вы должны вывести схему и отобразить или разделить ее, используя '|Вместо.Вы можете импортировать HiveContext или использовать sqlContext, определенный как SQLContext.Используя sqlContext spark создаст DataFrame для указанного вами файла.

# import
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)

# Then, you can use the com.databricks.spark.csv.
df = sqlContext.read \
     .format('com.databricks.spark.csv') \
     .options(header='true', delimiter='|') \
     .load('hdfs://host/user/data/file1.txt')

Второй подход (после преобразования в .csv) вы можете

df = sqlContext.read \
     .format('com.databricks.spark.csv') \
     .options(header='true', delimiter=',') \ # you can use a ',' here
     .load('hdfs://host/user/data/file1.csv')
  • format () : укажите формат, который вы хотите прочитать в файле.
  • options () : Позволяет указать заголовок и вы можете указатьразделитель.
  • load () : загрузка файла по указанному пути.

Для получения дополнительной информации см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...