Ошибка типа: поле Заказчик: не может объединить тип а также - PullRequest
0 голосов
/ 02 февраля 2020
SL No:  Customer    Month   Amount
1   A1  12-Jan-04   495414.75
2   A1  3-Jan-04    245899.02
3   A1  15-Jan-04   259490.06

Мой Df выше

Код

import findspark
findspark.init('/home/mak/spark-3.0.0-preview2-bin-hadoop2.7')
import pyspark
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('mak').getOrCreate()
import numpy as np
import pandas as pd

# Enable Arrow-based columnar data transfers
spark.conf.set("spark.sql.execution.arrow.enabled", "true")

pdf3 = pd.read_csv('Repayment.csv')
df_repay = spark.createDataFrame(pdf3)

только загрузка df_repay проблема, другой фрейм данных загружен успешно. Когда я перенес свой код в код ниже, он успешно работал

df4 = (spark.read.format("csv").options(header="true") .load("Repayment.csv"))

  • , почему df_repay не загружается с spark.createDataFrame(pdf3), в то время как подобные фреймы данных загружаются успешно

1 Ответ

2 голосов
/ 02 февраля 2020

pdf3 - это pandas датафрейм, и вы пытаетесь преобразовать pandas датафрейм в фрейм данных. если вы хотите придерживаться своего кода, используйте приведенный ниже код, который конвертирует ваш pandas фрейм данных в спарк фрейм данных.

from pyspark.sql.types import *
pdf3 = pd.read_csv('Repayment.csv')
#create schema for your dataframe
schema = StructType([StructField("Customer", StringType(), True)\
                   ,StructField("Month", DateType(), True)\
                   ,StructField("Amount", IntegerType(), True)])

#create spark dataframe using schema
df_repay = spark.createDataFrame(pdf3,schema=schema)
...