python - 将 chess.com 玩家游戏数据读入 spark 数据框
问题描述
我使用 chess.com API 来收集玩家的游戏数据。API 提供 JSON 响应,我将此 JSON 响应保存为 CSV 文件。
将游戏数据保存为 CSV 文件格式的代码:
data-url= https://api.chess.com/pub/player/erik/games
games= requests.get(data-url).json()
df= pd.json_normalize(games['games'])
df['poi']= 'erik'
df.to_csv('data.csv', index=False)
现在,如果我将此文件读入 pandas 数据框,它就可以工作。但是,当我将同一个文件读入 spark 数据框时,我的所有数据都在第一列中,而所有其他列都没有。
我该如何解决?非常感谢任何相关的建议。
Spark 将文件读入 spark 数据帧代码:
df = spark.read.format("csv").load(
r'/media/disk2/isb_ras/sachin/chess/matches/games_larrygm.csv',header=True)
更新:
我意识到问题是由数据文件的 PGN 字段中的数据引起的。我将数据文件读入 pandas 数据框中,删除了 pgn 功能,并将其保存到一个新文件中。然后我将新文件读入 Spark 数据帧,它工作了。
当我从熊猫的数据框中打印第一个值时,样本 PGN 数据:
'[Event "Live Chess"]\n[Site "Chess.com"]\n[Date "2011.12.01"]\n[Round "-"]\n[White "-KingOfTheCastle-"]\n[Black "lambruskice"]\n[Result "1-0"]\n[CurrentPosition "rnbq1bnr/pp1p2p1/4kp2/2pQ1N1B/4P3/8/PPP2PPP/RNB1K2R b KQ -"]\n[Timezone "UTC"]\n[ECO "C40"]\n[ECOUrl "https://www.chess.com/openings/Kings-Pawn-Opening-Kings-Knight-Damiano-Defense"]\n[UTCDate "2011.12.01"]\n[UTCTime "19:07:25"]\n[WhiteElo "1350"]\n[BlackElo "1153"]\n[TimeControl "600"]\n[Termination "-KingOfTheCastle- won by checkmate"]\n[StartTime "19:07:25"]\n[EndDate "2011.12.01"]\n[EndTime "19:08:34"]\n[Link "https://www.chess.com/game/live/213529090"]\n\n1. e4 {[%clk 0:10:00]} 1... e5 {[%clk 0:10:00]} 2. Nf3 {[%clk 0:09:57.9]} 2... f6 {[%clk 0:09:58]} 3. d4 {[%clk 0:09:49.8]} 3... exd4 {[%clk 0:09:55.9]} 4. Nxd4 {[%clk 0:09:48.4]} 4... h5 {[%clk 0:09:52.6]} 5. Be2 {[%clk 0:09:44.8]} 5... c5 {[%clk 0:09:42.1]} 6. Bxh5+ {[%clk 0:09:39.4]} 6... Ke7 {[%clk 0:09:32.4]} 7. Nf5+ {[%clk 0:09:36.1]} 7... Ke6 {[%clk 0:09:25.6]} 8. Qd5# {[%clk 0:09:29.5]} 1-0\n'
此 pgn 信息中有很多特殊字符。但是没有逗号。现在,我如何通过确保 PGN 被视为 pgn 列的一个单一条目来将此文件读入 spark 数据帧。
解决方案
推荐阅读
- variables - 等待执行后异步/等待结果为空
- asp.net-mvc - 有没有办法使用 Identity 2.0 AspNetUsers Authentication (Azure SQL) 和 OpenIdConnect(使用 Azure Active Directory)?
- sql - 将数字和字符串的串联转换为日期
- python - 将外键序列化为 DRF 中的列表
- c++ - 在 C++ 后缀上测试太多操作数以中缀堆栈
- ruby-on-rails - 命名间隔形式对象的 i18n 文件位置和格式
- git - 未添加 git 中的子模块并显示 [修改内容]
- c++ - 当矩阵没有LU-Decomposition时,如何在C ++中求解方阵的线性系统?
- time - 库克定理和 NP 完全约简
- c# - 获取方法(Odata) - 检查是否正常工作 - C#