【问题标题】:TypeError: field Customer: Can not merge type <class 'pyspark.sql.types.StringType'> and <class 'pyspark.sql.types.DoubleType'>类型错误:字段客户:无法合并类型 <class 'pyspark.sql.types.StringType'> 和 <class 'pyspark.sql.types.DoubleType'>
【发布时间】:2020-05-18 05:30:06
【问题描述】:
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) 而类似的数据帧加载成功

【问题讨论】:

标签: pandas apache-spark pyspark apache-arrow


【解决方案1】:

pdf3 是熊猫数据框,您正在尝试将熊猫数据框转换为火花数据框。如果你想坚持你的代码,请使用下面的代码将你的熊猫数据帧转换为火花数据帧。

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2020-02-10
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多