Mr.*_*mia 1 python dataframe pandas apache-spark-sql pyspark
我正在使用 Pandas 读取 csv 文件,它是一个两列数据帧,然后我试图转换为 spark 数据帧。代码如下:
from pyspark.sql import SQLContext
sqlCtx = SQLContext(sc)
sdf = sqlCtx.createDataFrame(df)
Run Code Online (Sandbox Code Playgroud)
数据框:
print(df)
Run Code Online (Sandbox Code Playgroud)
给出了这个:
Name Category
0 EDSJOBLIST apply at www.edsjoblist.com ['biotechnology', 'clinical', 'diagnostic', 'd...
1 Power Direct Marketing ['advertising', 'analytics', 'brand positionin...
2 CHA Hollywood Medical Center, L.P. ['general medical and surgical hospital', 'hea...
3 JING JING GOURMET [nan]
4 TRUE LIFE KINGDOM MINISTRIES ['religious organization']
5 fasterproms ['microsoft .net']
6 STEREO ZONE ['accessory', 'audio', 'car audio', 'chrome', ...
7 SAN FRANCISCO NEUROLOGICAL SOCIETY [nan]
8 Fl Advisors ['comprehensive financial planning', 'financia...
9 Fortunatus LLC ['bottle', 'bottling', 'charitable', 'dna', 'f...
10 TREADS LLC ['retail', 'wholesaling']
Run Code Online (Sandbox Code Playgroud)
谁能帮我这个 ?
Spark 可能难以处理object数据类型。一个潜在的解决方法是首先将所有内容转换为字符串:
sdf = sqlCtx.createDataFrame(df.astype(str))
Run Code Online (Sandbox Code Playgroud)
这样做的一个后果是所有内容,包括nan将转换为字符串。您需要注意正确处理这些转换并将列转换为适当的类型。
例如,如果您有一列"colA"包含浮点值,您可以使用类似以下内容将字符串转换"nan"为 a null:
from pyspark.sql.functions import col, when
sdf = sdf.withColumn("colA", when(col("colA") != "nan", col("colA").cast("float")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |