【发布时间】:2020-09-09 13:18:25
【问题描述】:
我有一个从 pandas 数据框创建的示例 spark 数据框 -
from pyspark.sql import SparkSession
import pyspark.sql.functions as F
from pyspark.sql.types import StringType
from pyspark.sql.types import *
import pandas as pd
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
#create sample spark dataframe first and then create pandas dataframe from it
import pandas as pd
pdf = pd.DataFrame([[1,"hello world. lets shine and spread happiness"],[2,"not so sure"],[2,"cool i like it"],[2,"cool i like it"],[2,"cool i like it"]]
, columns = ['input1','input2'])
df = spark.createDataFrame(pdf) # this is spark df
现在,我的数据类型为
df.printSchema()
root
|-- input1: long (nullable = true)
|-- input2: string (nullable = true)
如果我使用 -
将此 spark 数据帧转换回 pandaspandas_df = df.toPandas()
然后如果我尝试打印数据类型,我会返回第二列的对象类型而不是字符串类型。
pandas_df.dtypes
input1 int64
input2 object
dtype: object
如何正确地将 spark 中的这种字符串类型转换为 pandas 中的字符串类型?
【问题讨论】:
-
object类型有什么问题?我相信它与stringpyspark 中的类型具有相同的属性 -
当我使用对象类型执行一些下游处理时,我遇到了一些我无法解决的编码错误。有没有办法将对象类型转换为字符串类型?
标签: pandas apache-spark pyspark