100% нашли этот документ полезным (1 голос)
9 просмотров

Distributed Machine Learning with PySpark 1st Edition Abdelaziz Testas 2024 scribd download

PySpark

Загружено:

muhekegumpo
Авторское право
© © All Rights Reserved
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
100% нашли этот документ полезным (1 голос)
9 просмотров

Distributed Machine Learning with PySpark 1st Edition Abdelaziz Testas 2024 scribd download

PySpark

Загружено:

muhekegumpo
Авторское право
© © All Rights Reserved
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 47

Download the full version of the ebook at

https://ebookmass.com

Distributed Machine Learning with PySpark 1st


Edition Abdelaziz Testas

https://ebookmass.com/product/distributed-machine-
learning-with-pyspark-1st-edition-abdelaziz-
testas/

Explore and download more ebook at https://ebookmass.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Distributed Machine Learning with PySpark 1st Edition


Abdelaziz Testas

https://ebookmass.com/product/distributed-machine-learning-with-
pyspark-1st-edition-abdelaziz-testas/

testbankdeal.com

Applied Machine Learning 1st Edition M. Gopal

https://ebookmass.com/product/applied-machine-learning-1st-edition-m-
gopal/

testbankdeal.com

Source separation and machine learning Chien

https://ebookmass.com/product/source-separation-and-machine-learning-
chien/

testbankdeal.com

Machine Learning for Time Series Forecasting with Python


Francesca Lazzeri

https://ebookmass.com/product/machine-learning-for-time-series-
forecasting-with-python-francesca-lazzeri/

testbankdeal.com
Machine Learning with Python for Everyone (Addison Wesley
Data & Analytics Series) 1st Edition, (Ebook PDF)

https://ebookmass.com/product/machine-learning-with-python-for-
everyone-addison-wesley-data-analytics-series-1st-edition-ebook-pdf/

testbankdeal.com

Machine Learning in Microservices: Productionizing


microservices architecture for machine learning solutions
Abouahmed
https://ebookmass.com/product/machine-learning-in-microservices-
productionizing-microservices-architecture-for-machine-learning-
solutions-abouahmed/
testbankdeal.com

Practical Machine Learning on Databricks (1st Edition)


Debu Sinha

https://ebookmass.com/product/practical-machine-learning-on-
databricks-1st-edition-debu-sinha/

testbankdeal.com

Beginner's Guide to Streamlit with Python: Build Web-Based


Data and Machine Learning Applications 1st Edition Sujay
Raghavendra
https://ebookmass.com/product/beginners-guide-to-streamlit-with-
python-build-web-based-data-and-machine-learning-applications-1st-
edition-sujay-raghavendra/
testbankdeal.com

Time Series Algorithms Recipes: Implement Machine Learning


and Deep Learning Techniques with Python Akshay R Kulkarni

https://ebookmass.com/product/time-series-algorithms-recipes-
implement-machine-learning-and-deep-learning-techniques-with-python-
akshay-r-kulkarni/
testbankdeal.com
Distributed Machine
Learning with PySpark
Migrating Effortlessly from Pandas
and Scikit-Learn

Abdelaziz Testas
Distributed Machine Learning with PySpark: Migrating Effortlessly from Pandas
and Scikit-Learn
Abdelaziz Testas
Fremont, CA, USA

ISBN-13 (pbk): 978-1-4842-9750-6 ISBN-13 (electronic): 978-1-4842-9751-3


https://doi.org/10.1007/978-1-4842-9751-3

Copyright © 2023 by Abdelaziz Testas


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Celestin Suresh John
Development Editor: Laura Berendson
Coordinating Editor: Gryffin Winkler
Cover designed by eStudioCalamar
Cover image by Aakash Dhage on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit
www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint,
paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub (https://github.com/Apress). For more detailed information, please visit
https://www.apress.com/gp/services/source-code.
Paper in this product is recyclable
I dedicate this book to my family and colleagues
for support and encouragement.
Table of Contents
About the Author��������������������������������������������������������������������������������������������������� xiii

About the Technical Reviewer�������������������������������������������������������������������������������� xv

Acknowledgments������������������������������������������������������������������������������������������������ xvii
Introduction����������������������������������������������������������������������������������������������������������� xix

Chapter 1: An Easy Transition����������������������������������������������������������������������������������� 1


PySpark and Pandas Integration��������������������������������������������������������������������������������������������������� 2
Similarity in Syntax����������������������������������������������������������������������������������������������������������������������� 4
Loading Data��������������������������������������������������������������������������������������������������������������������������������� 5
Selecting Columns������������������������������������������������������������������������������������������������������������������������ 6
Aggregating Data�������������������������������������������������������������������������������������������������������������������������� 9
Filtering Data������������������������������������������������������������������������������������������������������������������������������ 11
Joining Data�������������������������������������������������������������������������������������������������������������������������������� 14
Saving Data��������������������������������������������������������������������������������������������������������������������������������� 17
Modeling Steps��������������������������������������������������������������������������������������������������������������������������� 18
Pipelines������������������������������������������������������������������������������������������������������������������������������������� 20
Summary������������������������������������������������������������������������������������������������������������������������������������ 23

Chapter 2: Selecting Algorithms����������������������������������������������������������������������������� 25


The Dataset��������������������������������������������������������������������������������������������������������������������������������� 26
Selecting Algorithms with Cross-Validation�������������������������������������������������������������������������������� 34
Scikit-Learn��������������������������������������������������������������������������������������������������������������������������� 36
PySpark��������������������������������������������������������������������������������������������������������������������������������������� 42
Bringing It All Together���������������������������������������������������������������������������������������������������������������� 47

v
Table of Contents

Scikit-Learn�������������������������������������������������������������������������������������������������������������������������������� 47
PySpark��������������������������������������������������������������������������������������������������������������������������������������� 49
Summary������������������������������������������������������������������������������������������������������������������������������������ 51

Chapter 3: Multiple Linear Regression with Pandas, Scikit-Learn,


and PySpark����������������������������������������������������������������������������������������������������������� 53
The Dataset��������������������������������������������������������������������������������������������������������������������������������� 54
Multiple Linear Regression��������������������������������������������������������������������������������������������������������� 60
Multiple Linear Regression with Scikit-Learn����������������������������������������������������������������������� 63
Multiple Linear Regression with PySpark������������������������������������������������������������������������������ 67
Summary������������������������������������������������������������������������������������������������������������������������������������ 73

Chapter 4: Decision Tree Regression with Pandas, Scikit-Learn, and PySpark������ 75


The Dataset��������������������������������������������������������������������������������������������������������������������������������� 76
Decision Tree Regression������������������������������������������������������������������������������������������������������������ 83
Decision Tree Regression with Scikit-Learn�������������������������������������������������������������������������� 85
Decision Tree Regression with PySpark������������������������������������������������������������������������������ 100
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 109
Scikit-Learn������������������������������������������������������������������������������������������������������������������������������ 109
PySpark������������������������������������������������������������������������������������������������������������������������������������� 111
Summary���������������������������������������������������������������������������������������������������������������������������������� 113

Chapter 5: Random Forest Regression with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 115
The Dataset������������������������������������������������������������������������������������������������������������������������������� 116
Random Forest Regression������������������������������������������������������������������������������������������������������� 120
Random Forest with Scikit-Learn���������������������������������������������������������������������������������������� 122
Random Forest with PySpark���������������������������������������������������������������������������������������������� 129
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 137
Scikit-Learn������������������������������������������������������������������������������������������������������������������������������ 137
PySpark������������������������������������������������������������������������������������������������������������������������������������� 139
Summary���������������������������������������������������������������������������������������������������������������������������������� 142

vi
Table of Contents

Chapter 6: Gradient-Boosted Tree Regression with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 143
The Dataset������������������������������������������������������������������������������������������������������������������������������� 144
Gradient-Boosted Tree (GBT) Regression���������������������������������������������������������������������������������� 148
GBT with Scikit-Learn���������������������������������������������������������������������������������������������������������� 150
GBT with PySpark���������������������������������������������������������������������������������������������������������������� 157
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 166
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 167
PySpark������������������������������������������������������������������������������������������������������������������������������� 169
Summary���������������������������������������������������������������������������������������������������������������������������������� 171

Chapter 7: Logistic Regression with Pandas, Scikit-Learn, and PySpark������������� 173


The Dataset������������������������������������������������������������������������������������������������������������������������������� 174
Logistic Regression������������������������������������������������������������������������������������������������������������������� 180
Logistic Regression with Scikit-Learn�������������������������������������������������������������������������������������� 183
Logistic Regression with PySpark��������������������������������������������������������������������������������������������� 192
Putting It All Together���������������������������������������������������������������������������������������������������������������� 204
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 204
PySpark������������������������������������������������������������������������������������������������������������������������������� 208
Summary���������������������������������������������������������������������������������������������������������������������������������� 212

Chapter 8: Decision Tree Classification with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 213
The Dataset������������������������������������������������������������������������������������������������������������������������������� 214
Decision Tree Classification������������������������������������������������������������������������������������������������������ 221
Scikit-Learn and PySpark Similarities�������������������������������������������������������������������������������������� 222
Decision Tree Classification with Scikit-Learn�������������������������������������������������������������������� 224
Decision Tree Classification with PySpark��������������������������������������������������������������������������� 230
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 235
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 235
PySpark������������������������������������������������������������������������������������������������������������������������������� 238
Summary���������������������������������������������������������������������������������������������������������������������������������� 241

vii
Table of Contents

Chapter 9: Random Forest Classification with Scikit-Learn and PySpark����������� 243


Random Forest Classification��������������������������������������������������������������������������������������������������� 244
Scikit-Learn and PySpark Similarities for Random Forests������������������������������������������������ 244
Random Forests with Scikit-Learn�������������������������������������������������������������������������������������� 245
Random Forests with PySpark�������������������������������������������������������������������������������������������� 248
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 253
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 253
PySpark������������������������������������������������������������������������������������������������������������������������������� 255
Summary���������������������������������������������������������������������������������������������������������������������������������� 258

Chapter 10: Support Vector Machine Classification with Pandas,


Scikit-Learn, and PySpark������������������������������������������������������������������������������������ 259
The Dataset������������������������������������������������������������������������������������������������������������������������������� 260
Support Vector Machine Classification������������������������������������������������������������������������������������� 264
Linear SVM with Scikit-Learn���������������������������������������������������������������������������������������������� 264
Linear SVM with PySpark���������������������������������������������������������������������������������������������������� 269
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 276
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 277
PySpark������������������������������������������������������������������������������������������������������������������������������� 278
Summary���������������������������������������������������������������������������������������������������������������������������������� 280

Chapter 11: Naive Bayes Classification with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 281
The Dataset������������������������������������������������������������������������������������������������������������������������������� 282
Naive Bayes Classification�������������������������������������������������������������������������������������������������������� 287
Naive Bayes with Scikit-Learn�������������������������������������������������������������������������������������������������� 287
Naive Bayes with PySpark��������������������������������������������������������������������������������������������������� 290
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 293
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 294
PySpark������������������������������������������������������������������������������������������������������������������������������� 295
Summary���������������������������������������������������������������������������������������������������������������������������������� 297

viii
Table of Contents

Chapter 12: Neural Network Classification with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 299
The Dataset������������������������������������������������������������������������������������������������������������������������������� 300
MLP Classification��������������������������������������������������������������������������������������������������������������������� 307
MLP Classification with Scikit-Learn����������������������������������������������������������������������������������� 310
MLP Classification with PySpark����������������������������������������������������������������������������������������� 314
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 324
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 324
PySpark������������������������������������������������������������������������������������������������������������������������������� 325
Summary���������������������������������������������������������������������������������������������������������������������������������� 327

Chapter 13: Recommender Systems with Pandas, Surprise, and PySpark���������� 329
The Dataset������������������������������������������������������������������������������������������������������������������������������� 331
Building a Recommender System��������������������������������������������������������������������������������������������� 339
Recommender System with Surprise��������������������������������������������������������������������������������������� 339
Recommender System with PySpark���������������������������������������������������������������������������������� 345
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 350
Surprise������������������������������������������������������������������������������������������������������������������������������� 351
PySpark������������������������������������������������������������������������������������������������������������������������������� 352
Summary���������������������������������������������������������������������������������������������������������������������������������� 353

Chapter 14: Natural Language Processing with Pandas, Scikit-Learn,


and PySpark��������������������������������������������������������������������������������������������������������� 355
The Dataset������������������������������������������������������������������������������������������������������������������������������� 356
Cleaning, Tokenization, and Vectorization��������������������������������������������������������������������������������� 362
Naive Bayes Classification�������������������������������������������������������������������������������������������������� 371
Naive Bayes with Scikit-Learn�������������������������������������������������������������������������������������������� 373
Naive Bayes with PySpark��������������������������������������������������������������������������������������������������� 378
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 389
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 389
PySpark������������������������������������������������������������������������������������������������������������������������������� 391
Summary���������������������������������������������������������������������������������������������������������������������������������� 394

ix
Visit https://ebookmass.com
now to explore a rich
collection of eBooks and enjoy
exciting offers!
Table of Contents

Chapter 15: k-Means Clustering with Pandas, Scikit-Learn, and PySpark����������� 395
The Dataset������������������������������������������������������������������������������������������������������������������������������� 396
Machine Learning with k-Means���������������������������������������������������������������������������������������������� 400
k-Means Clustering with Scikit-Learn��������������������������������������������������������������������������������� 400
k-Means Clustering with PySpark��������������������������������������������������������������������������������������� 408
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 412
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 412
PySpark������������������������������������������������������������������������������������������������������������������������������� 414
Summary���������������������������������������������������������������������������������������������������������������������������������� 416

Chapter 16: Hyperparameter Tuning with Scikit-Learn and PySpark������������������� 417


Examples of Hyperparameters�������������������������������������������������������������������������������������������������� 417
Tuning the Parameters of a Random Forest������������������������������������������������������������������������������ 419
Hyperparameter Tuning in Scikit-Learn������������������������������������������������������������������������������� 420
Hyperparameter Tuning in PySpark������������������������������������������������������������������������������������� 426
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 436
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 436
PySpark������������������������������������������������������������������������������������������������������������������������������� 438
Summary���������������������������������������������������������������������������������������������������������������������������������� 440

Chapter 17: Pipelines with Scikit-Learn and PySpark������������������������������������������ 441


The Significance of Pipelines���������������������������������������������������������������������������������������������������� 442
Pipelines with Scikit-Learn������������������������������������������������������������������������������������������������� 443
Pipelines with PySpark�������������������������������������������������������������������������������������������������������� 450
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 458
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 458
PySpark������������������������������������������������������������������������������������������������������������������������������� 459
Summary���������������������������������������������������������������������������������������������������������������������������������� 461

x
Table of Contents

Chapter 18: Deploying Models in Production with Scikit-Learn and PySpark����� 463
Steps in Model Deployment������������������������������������������������������������������������������������������������������ 465
Deploying a Multilayer Perceptron (MLP)���������������������������������������������������������������������������������� 466
Deployment with Scikit-Learn��������������������������������������������������������������������������������������������� 466
PySpark������������������������������������������������������������������������������������������������������������������������������� 470
Bringing It All Together�������������������������������������������������������������������������������������������������������������� 478
Scikit-Learn������������������������������������������������������������������������������������������������������������������������� 479
PySpark������������������������������������������������������������������������������������������������������������������������������� 480
Summary���������������������������������������������������������������������������������������������������������������������������������� 482

Index��������������������������������������������������������������������������������������������������������������������� 483

xi
About the Author
Abdelaziz Testas, PhD, is a data scientist with over a
decade of experience in data analysis and machine learning,
specializing in the use of standard Python libraries and Spark
distributed computing. He holds a PhD in Economics from
the University of Leeds and a master’s degree in Finance
from the University of Glasgow. He has completed several
certificates in computer science and data science.
In the last ten years, the author worked for Nielsen
in Fremont, California, as a lead data scientist, focusing
on improving the company’s audience measurement
by planning, initiating, and executing end-to-end data
science projects and methodology work, and drove advanced solutions into Nielsen’s
digital ad and content rating products by leveraging subject matter expertise in media
measurement and data science. The author is passionate about helping others improve
their machine learning skills and workflows and is excited to share his knowledge and
experience with a wider audience through this book.

xiii
About the Technical Reviewer
Bharath Kumar Bolla has over 12 years of experience and
is a senior data scientist at Salesforce, Hyderabad. Bharath
obtained an MS in Data Science from the University of
Arizona, USA. He also had a master’s in Life Sciences from
Mississippi State University, USA. Bharath worked as a
research scientist for around seven years at the University
of Georgia, Emory University, and Eurofins LLC. At Verizon,
Bharath led a team to build a “Smart Pricing” solution, and
at Happiest Minds, he worked on AI-based digital marketing
products. Along with his day-to-day responsibilities, he is a mentor and an active
researcher with more than 20 publications in conferences and journals. Bharath received
the “40 Under 40 Data Scientists 2021” award from Analytics India Magazine for his
accomplishments.

xv
Acknowledgments
I would like to express my gratitude to all those who have directly or indirectly
contributed to the creation and publication of this book. First and foremost, I am deeply
thankful to my family for their unwavering support and encouragement throughout this
journey.
I would like to acknowledge the invaluable assistance of Apress in bringing this
book to fruition. Specifically, I wish to extend my heartfelt thanks to Celestin John, the
Acquisitions Editor for AI and Machine Learning, for his guidance in shaping the main
themes of this work and providing continuous feedback during the initial stages of the
book. I am also grateful to Nirmal Selvaraj for his dedication and support as my main
point of contact throughout the development cycle of the book. Additionally, I would
like to express my appreciation to Laura Berendson for her advisory role and invaluable
contributions as our Development Editor.
Lastly, I extend my gratitude to the technical reviewer Bharath Kumar Bolla who
diligently reviewed the manuscript and provided valuable suggestions for improvement.
Your meticulousness and expertise have significantly enhanced the quality and clarity of
the final product.
To all those who have contributed, whether mentioned individually or not, your
contributions have played an integral part in making this book a reality. Thank you for
your support, feedback, and commitment to this project.

xvii
Introduction
In recent years, the amount of data generated and collected by companies and
organizations has grown exponentially. As a result, data scientists have been pushed
to process and analyze large amounts of data, and traditional single-node computing
tools such as Pandas and Scikit-Learn have become inadequate. In response, many data
scientists have turned to distributed computing frameworks such as Apache Spark, with
its Python-based interface, PySpark.
PySpark has several advantages over single-node computing, including the ability
to handle large volumes of data and the potential for significantly faster data processing
times. Furthermore, because PySpark is built on top of Spark, a widely used distributed
computing framework, it also offers a broader set of tools for data processing and
machine learning.
While transitioning from Pandas and Scikit-Learn to PySpark may seem daunting,
the transition can be relatively straightforward. Pandas/Scikit-Learn and PySpark offer
similar APIs, which means that many data scientists can easily transition from one to
the other.
In this context, this book will explore the benefits of using PySpark over traditional
single-node computing tools and provide guidance for data scientists who are
considering transitioning to PySpark.
In this book, we aim to provide a comprehensive overview of the main machine
learning algorithms with a particular focus on regression and classification. These are
fundamental techniques that form the backbone of many practical applications of
machine learning. We will cover popular methods such as linear and logistic regression,
decision trees, random forests, gradient-boosted trees, support vector machines, Naive
Bayes, and neural networks. We will also discuss how these algorithms can be applied
to real-world problems, such as predicting house prices, and the likelihood of diabetes
as well as classifying handwritten digits or the species of an Iris flower and predicting
whether a tumor is benign or malignant. Whether you are a beginner or an experienced
practitioner, this book is designed to help you understand the core concepts of machine
learning and develop the skills needed to apply these methods in practice.

xix
Introduction

This book spans 18 chapters and covers multiple topics. The first two chapters
examine why migration from Pandas and Scikit-­Learn to PySpark can be a seamless
process, and address the challenges of selecting an algorithm. Chapters 3–6 build, train,
and evaluate some popular regression models, namely, multiple linear regression,
decision trees, random forests, and gradient-boosted trees, and use them to deal
with some real-world tasks such as predicting house prices. Chapters 7–12 deal with
classification issues by building, training, and evaluating widely used algorithms such
as logistic regression, decision trees, random forests, support vector machines, Naive
Bayes, and neural networks. In Chapters 13–15, we examine three additional types of
algorithms, namely, recommender systems, natural language processing, and clustering
with k-means. In the final three chapters, we deal with hyperparameter tuning, pipelines,
and deploying models into production.

xx
CHAPTER 1

An Easy Transition
One of the key factors in making the transition from Pandas and Scikit-Learn to PySpark
relatively easy is the similarity in functionality. This similarity will become evident after
reading this chapter and executing the code described herein.
One of the easiest ways to test the code is by signing up for an online Databricks
Community Edition account and creating a workspace. Databricks provides detailed
documentation on how to create a cluster, upload data, and create a notebook.
Additionally, Spark can also be installed locally through the pip install pyspark
command.
Another option is Google Colab. PySpark is preinstalled on Colab by default;
otherwise, it can be installed using the !pip install pyspark command in a Colab
notebook. This command will install PySpark and its dependencies in the Colab
environment. While both provide Jupyter-like notebooks, one advantage of Databricks
is that Colab is a single-core instance, whereas Databricks provides multi-node clusters
for parallel processing. This feature makes Databricks better suited for handling larger
datasets and more complex computational tasks in a collaborative team environment.
Although Pandas and Scikit-Learn are tools primarily designed for small data
processing and analysis, while PySpark is a big data processing framework, PySpark
offers functionality similar to Pandas and Scikit-Learn. This includes DataFrame
operations and machine learning algorithms. The presence of these familiar
functionalities in PySpark facilitates a smoother transition for data scientists accustomed
to working with Pandas and Scikit-Learn.
In this chapter, we examine in greater depth the factors that contribute to the ease
of transition from these small data tools (Pandas and Scikit-Learn) to PySpark. More
specifically, we focus on PySpark and Pandas integration and the similarity in syntax
between PySpark, on the one hand, and Pandas and Scikit-Learn, on the other.

1
© Abdelaziz Testas 2023
A. Testas, Distributed Machine Learning with PySpark, https://doi.org/10.1007/978-1-4842-9751-3_1
Chapter 1 An Easy Transition

PySpark and Pandas Integration


PySpark is well integrated with Pandas. Both the DataFrame and MLlib (Machine
Learning Library) designs in PySpark were inspired by Pandas (and Scikit-Learn)
concepts. The DataFrame concept in PySpark is similar to that of Pandas in that the data
is stored in rows and columns similar to relational database tables and excel sheets.
Consequently, it is easy to convert a PySpark DataFrame to a Pandas DataFrame and
vice-versa, making the integration between the two packages straightforward.
A PySpark DataFrame can be converted to a Pandas DataFrame by using toPandas()
method, while a Pandas DataFrame can be converted to a PySpark DataFrame using the
createDataFrame() method.
Let’s start with an example of how to convert a Pandas DataFrame to a PySpark
DataFrame using the PySpark createDataFrame() method:
Step 1: Import Pandas

[In]: import pandas as pd

Step 2: Create a Pandas DataFrame

[In]: data = {'Country': ['United States', 'Brazil', 'Russia'], 'River':


['Mississippi', 'Amazon', 'Volga']}
[In]: pandas_df = pd.DataFrame(data)

Step 3: Convert Pandas DataFrame to PySpark DataFrame

[In]: from pyspark.sql import SparkSession


[In]: spark = SparkSession.builder.appName("BigRivers").getOrCreate()
[In]: pyspark_df = spark.createDataFrame(pandas_df)

Step 4: Display the content of the PySpark DataFrame

[In]: pyspark_df.show()
[Out]:

Country River

United States Mississippi


Brazil Amazon
Russia Volga

2
Visit https://ebookmass.com
now to explore a rich
collection of eBooks and enjoy
exciting offers!
Chapter 1 An Easy Transition

Notice that before converting the Pandas DataFrame to the PySpark DataFrame
using the PySpark createDataFrame() method in step 3, we needed to create a Spark
Session named spark. There are two lines of code to achieve this. In the first line
(from pyspark.sql import SparkSession), we imported the SparkSession class from the
pyspark.sql module. In the second line, we created a new instance of the Spark Session
named spark (spark = SparkSession.builder.appName(“BigRivers”).getOrCreate()). The
following is what each part of this line of code does:

• SparkSession.builder: This starts the process of configuring and


building a new Spark Session.

• appName(“BigRivers”): The appName method sets a name for the


Spark application.

• getOrCreate(): This method either retrieves an existing Spark Session


if one exists or creates a new one if none is found. It ensures that only
one Spark Session is active at a time.

This Spark Session concept is fundamental in Apache Spark as it is an entry point to


interacting with its features and APIs in a structured manner. It provides an environment
for managing configurations, creating Spark DataFrame and Dataset objects, executing
Spark operations, and coordinating tasks across a cluster.
This is particularly important if we are running the code in an environment like
Google Colab. When using Databricks notebooks, however, the Spark Session is already
created and initialized, so we can directly use the spark object to interact with Spark
features, run queries, create DataFrames, and use various Spark libraries. We can now
do the reverse: Create a PySpark DataFrame and then convert it to a Pandas DataFrame
using the toPandas() method:
Step 1: Import Spark Session

[In]: from pyspark.sql import SparkSession

Step 2: Create a Spark Session

[In]: spark = SparkSession.builder.appName("BigRivers").getOrCreate()

Step 3: Create a PySpark DataFrame

[In]: data = [('United States', 'Mississippi'), ('Brazil', 'Amazon'),


('Russia', 'Volga')]
[In]: spark_df = spark.createDataFrame(data, ["Country", "River"])
3
Chapter 1 An Easy Transition

Step 4: Convert Spark DataFrame to a Pandas DataFrame

[In]: pandas_df = spark_df.toPandas()

Step 5: Display the data

[In]: print(pandas_df)
[Out]:

Country River

0 United States Mississippi


1 Brazil Amazon
2 Russia Volga

Notice that Pandas displays an index column in the output, providing a unique
identifier for each row, whereas PySpark does not explicitly show an index column in its
DataFrame output.
As we have seen in this section, it is easy to toggle between Pandas and PySpark,
thanks to the close integration between the two libraries.

Similarity in Syntax
Another key factor that contributes to the smooth transition from small data tools
(Pandas and Scikit-Learn) to big data with PySpark is the familiarity of syntax. PySpark
shares a similar syntax with Pandas and Scikit-Learn in many cases. For example, square
brackets ([]) can be used on Databricks or Google Colab to select columns directly from
a PySpark DataFrame, just like in Pandas. Similarly, PySpark provides a DataFrame
API that resembles Pandas, and Spark MLlib (Machine Learning Library) includes
implementations of various machine learning algorithms found in Scikit-Learn.
In this section, we present examples of how PySpark code is similar to Pandas and
Scikit-Learn, facilitating an easy transition for data scientists between these tools.

4
Random documents with unrelated
content Scribd suggests to you:
L’APRÈS-MIDI DU FAUNE

Imprudente, tu vas sous l’épaisseur des branches,


Dans le parc merveilleux par l’automne doré,
Sans savoir qu’à l’odeur que laisse ta chair blanche,
Moi, le monstre velu te suis dans les fourrés.

A plat ventre, enfonçant mon sexe dans les herbes,


J’ai scruté bien souvent sous le tissu léger
Tes deux jambes en fleurs, vigoureuses, superbes,
Et ta grâce de vierge ignorant le danger.

Et ta nubilité précieuse et vivante,


Cette pudeur sentant le duvet et la peau,
Se confondait pour moi aux odeurs enivrantes
Des vieux buis, des genévriers et des sureaux.

Or, l’automne en chaleur décompose les feuilles,


Du feu sort en vapeurs de l’humus craquelé,
Les marronniers brûlants en gouttes d’or s’effeuillent,
Et je danse en pensant à ton corps violé.

Je pourrais tout à coup te tirer par la tresse


Et te faire tomber d’un geste, sur le dos.
J’étoufferais tes cris de ma forte caresse,
T’immobiliserais du poids de mon fardeau.

Non, je veux te forcer comme on force une bête,


Te faire revenir à l’animalité
Par la peur, te montrant subitement ma tête
Affreuse, et mon corps nu de désir dévasté.

A la course! Pour fuir tu lèveras ta robe,


Mon souffle d’animal te chauffera les reins.
Les arbousiers avec l’œil rouge de leur globe
En passant de leur suc t’humecteront les seins.
Tu heurteras les troncs, glisseras sur les gommes,
La ronce à chaque pas te déshabillera,
Plus fortes que les fleurs, des odeurs mâles d’hommes,
En effluves épais entoureront tes pas.

Tu fuiras jusqu’aux lieux où le parc est sauvage,


Où la racine à vif perce le sol en rut,
Où le pourrissement des bois et des feuillages
Fait un lit séminal aux grands arbres membrus.

Je te culbuterai parmi les fondrières,


Je te déchirerai, je te ravagerai,
Je te ferai sentir tout l’amour de la terre
Dans un élan que rien ne pourra modérer.

Et dans le rythme immense où tu seras plongée,


Tu percevras, tes mains fouillant le terreau noir,
Le baiser des fourmis, l’amour des scarabées,
Des étreintes de mandibule et de suçoir.

Et tu sauras combien est beau le crépuscule,


En sentant sous ton dos broyé par mon poitrail,
Les insectes amants, les couples minuscules
Et tout le grouillement de la terre en travail.

Et, boueuse et sanglante, au sein de la nature,


Tu renieras l’orgueil de ta virginité
Dans ce lit de la vie et de la pourriture
Dont j’aurai fait jaillir l’éternelle beauté.
PLAISIRS DU SULTAN

Le sultan énervé, las des femmes trop grasses


Du harem, des soldats dormant sous leur cuirasse,
Des eunuques trop laids et des chiens assoupis,
S’est fait porter avec ses bonbons, ses tapis,
Son narguilé d’argent et ses flacons de rose,
Dans la cour du palais que le soleil arrose.
Quatre nègres géants dont le torse est bombé
Font luire autour de lui leurs sabres recourbés.
Il s’ennuie, il a froid, il est triste de vivre...
Il fait venir la vierge aux beaux cheveux de cuivre,
Pareils à du feu chaud tressé sur un front pur.
Les nègres saisissant ce corps pétri d’azur
Lui fendent les poignets et pendant qu’elle crie
Versent le sang sur un plateau d’orfèvrerie.
Le sultan trempe alors ses mains languissamment
Dans le sang tiède et voit au fond des yeux charmants
De la vierge, la mort venir des veines vides...
Les sabres recourbés ont quatre éclairs splendides,
Le soleil brûle et le sultan clignant des yeux
Sur le corps étendu jette un grand velours bleu...
L’ESPRIT DE LA MER

Le veilleur dans la tour fit retentir sa corne,


Glaçant d’effroi sur les quais bleus les débardeurs.
Et la plage s’emplit de requins, de licornes
De mer, de poissons morts montant des profondeurs.

Sur les remparts bâtis de galets verts, l’évêque


Parut avec l’étole et la mitre qui luit
Suivi par les calfats, les marchands de pastèques
Qui, tordus par la peur, tendaient les mains vers lui.

Alors, dans l’horizon, le vaisseau gigantesque


S’avança sur les flots qui devenaient cendrés.
Il avait trois ponts noirs de forme barbaresque,
Il était sans fanal, sans voile et sans agrès.

Et sa coque luisait de nacres, de polypes,


De coraux sous-marins, de madrépores d’or.
Les pétoncles et les mollusques qui s’agrippent
S’étaient cristallisés dans le bois des sabords.

Il était cuirassé de la pierre des gouffres,


Il venait de plus loin que les courants des fonds,
Il portait comme un sceau sur sa poupe et ses roufles
Des signes incrustés par d’antiques typhons.

Et sur les ponts, parmi les mâtures fléchies,


Un équipage avec des corps huileux et blancs,
Des marins, respirant au moyen de branchies,
Manœuvraient. Ils avaient des nageoires aux flancs.

Ils portaient des turbans et des burnous d’arabes,


Ils regardaient au loin par d’aveugles yeux ronds.
Quelques-uns avaient des mandibules de crabes,
Et des sabres battaient sur leurs pieds d’esturgeons.
Et tout couvert de talismans kabbalistiques,
Un être avec un bec se tenait à l’avant.
Ses doigts palmés levaient un pentacle magique
Et sa robe en tissu perlé flottait au vent.

Il se fit un reflux d’eaux ternes et malsaines


Et ceux qui se trouvaient sur la plage ont cru voir
Les trois albatros morts sur le mât de misaine,
Avant que le vaisseau s’enfonçât dans le soir...

Depuis la ville semble atteinte de jaunisse...


L’homme languit, frappé par l’esprit de la mer,
Et fou, sur les quais bleus où les bateaux pourrissent,
L’évêque danse avec sa mitre de travers...
FEMME A LA PANTHÈRE

Il fait très chaud... Je marche à travers un jardin


Plein d’aloès. Au loin, résonne un tambourin,
Un chant de caravane ou de tribus en marche.
Je vois un pavillon de bois peint... quelques marches...
J’y cours, je les gravis, et j’hésite, levant
La portière d’argent rayé qui tremble au vent.
Je pénètre... Et sous le tamis des moustiquaires
Celle que la chaleur et le rêve exaspèrent
Dont les reins font un arc tendu par le désir,
Se pâme... Elle me voit et sourit de plaisir...
Elle écarte la gaze, offrant ses seins qui battent
Et son front couronné d’un turban écarlate.
Je tends les bras... Alors dans les coussins épais,
Longue et féline, une panthère qui dormait
S’étire, fait crisser ses ongles, me regarde.
La femme dont la main sur la bête s’attarde
S’offre encore et je vois dans un rais de soleil
Que la femme et le fauve ont des yeux verts pareils...
LA BOUCHÈRE NUE

Le village est cassé, atteint de lèpre, hagard.


Les toits sont par endroits troués par le désastre.
La place boursouflée et le clocher camard
Ont l’air de grimacer au silence des astres.

On dirait que le désespoir et le remords


Sont les hôtes geignants de ces portes de briques.
Mais comme un pou géant enfanté sur les morts
L’orgie au ventre épais bave dans les boutiques.

Des hommes un par un glissent le long des murs.


Là-bas dans une odeur de bête et d’écurie,
Sous le rougeâtre feu du bec de gaz obscur,
Comme une gueule en sang bâille la boucherie.

Ils entrent et parmi les bœufs morts de l’étal


S’accroupissent, luxurieux et pleins de joie.
Les visages ont quelque chose d’animal.
Au loin la lune monte... un chien errant aboie...

Et l’énorme bouchère aux grands seins descendant


Paraît et le public éclate quand elle entre.
Elle rit de plaisir et fait claquer ses dents,
Nue et flasque, elle danse une danse du ventre.

La viande et la sueur sentent également.


Un vieux en ricanant tient la lampe à pétrole
Et la hausse et la baisse à chaque mouvement,
Comme un prêtre bouffon d’une grotesque idole.

C’est pour les spectateurs un plus rare régal


Qu’un festin qu’on ferait dans le décor d’un bouge.
Et la danse ressemble un cérémonial
Du vieux culte de l’homme à la chair de la gouge...
Puis l’on part. L’air est lourd de fièvre et de tabac,
La bouchère tord ses cheveux brillants de graisse...
La lampe fume et meurt... Un peu de sang fait: flac!
C’est la tête de veau pleurant dans l’ombre épaisse...
LA FILLE DU SULTAN

La fille du sultan dans sa robe à sequins,


Toute menue au fond de l’étroit palanquin,
Rêve de supprimer l’horrible forme mâle.
Parfois ses longs doigts peints qu’encerclent les opales
Frôlent la favorite assise à ses côtés.
Ses yeux verts sont perdus sous de grands cils bleutés...
Malheur aux jeunes gens qui viennent sur leur porte
Ou sortent des bazars lorsqu’avec son escorte.
Ses eunuques et son grand tigre apprivoisé,
Serrant ses petits seins sous son châle croisé,
Elle rêve aux beautés des lignes féminines.
Malheur aux jeunes gens qui sortent des piscines
Et marchent au soleil couverts de gouttes d’eau.
Ils sont à coup de fouet attachés dos à dos,
On les mène au palais, on en fait des eunuques.
Quand ils sont épilés, revêtus de perruques
Et de robes, sanglants et des chaînes aux pieds,
Demi-hommes déchus en femmes habillés,
La fille du sultan à son balcon regarde
Heureuse et frissonnante, et fait signe à ses gardes
De les frapper plus fort de la lance ou du fouet
Afin qu’ils la supplient de leur voix en fausset.
LES CASTRATS

II

Les castrats, dans la cour, parqués comme des bêtes,


Se rappellent les soirs de puissance et de fête
Où parmi les sorbets, les pastèques, les vins,
Sur les tapis creusés par le désir divin
Ils possédaient le corps des filles barbaresques.
Maintenant revêtus d’affublements grotesques,
Ils sentent chaque jour leur visage jaunir,
Leurs muscles se sécher et leur force finir.
La fille du sultan à l’heure où le soir tombe
Paraît sur la terrasse ainsi qu’une colombe
Au plumage de soie et ruisselante d’or.
Elle enlève un à un les voiles de son corps,
Jette ses bracelets, ses colliers et ses peignes
Et svelte, sur l’azur et le soleil qui saigne,
Elle danse, vers les captifs tendant ses seins.
Et les castrats prennent leur tête dans leurs mains,
Ils maudissent leur chair ridicule et blessée,
Car l’âme est désireuse et la chair est glacée...
LE BAIN ROUGE

III

La fille du sultan aime sa favorite,


L’esclave aux cheveux courts, la pâle Moscovite.
Et comme elle est jalouse elle la fait garder,
Dans la salle aux jets d’eaux par les hommes fardés
Et cruels à qui seuls les adolescents plaisent.
Elle rit trop souvent avec les sœurs Maltaises,
Celle aux roses, celle qui porte un attirail
De talismans et celle à l’anneau de corail...
La fille du sultan dévêt la Moscovite,
Et puis, à se baigner près d’elle elle l’invite,
Ouvrant ses bras menus au milieu du bassin.
Alors elle l’enlace et sur leurs yeux, leurs seins
A toutes deux, le jet d’eau verse un ruisseau rouge,
Une petite pluie en fleurs qui frôle et bouge.
Des trois sœurs aux yeux noirs que l’on vient d’égorger
Il ne reste plus rien que ce jet d’eau léger.
Et dans les marbres bleus il danse, tourne et saigne
Sur les corps frémissants des femmes qui s’étreignent...
Dans le grand escalier l’homme au sabre descend...
Trois corps dans un grand sac... Quelques taches de sang...
Et parmi les coussins où traîne une odeur fade,
Les roses, le corail, les talismans de jade...
LA CHAMBRE DE BARBE BLEUE

La chambre en velours noir aux portes cramoisies...


Les sept corps suspendus à des crochets de fer
Gardent les spasmes morts des vieilles frénésies
Dont les plaisirs divins ont dévasté leur chair.

Dans les flaques de sang qui des gorges déferlent


Est une tache d’or étroite, c’est la clef.
Un petit doigt crispé garde encore une perle,
Un cou brisé de diamants est constellé...

J’effeuille un grand bouquet de jasmins et de roses...


Le vent du corridor fait trembler mon flambeau.
Le souvenir sort des paupières demi-closes...
Comme les yeux des morts sont terribles et beaux!

Voilà celles que j’adorais, mes sept compagnes,


Que j’ai faites périr de mes mains tour à tour.
Et pourtant mon amour chantait dans la montagne
Ainsi qu’une fanfare au sommet d’une tour.

Voilà la Florentine avec sa toison brune


Qui me faisait crier lorsque je la serrais,
Et mon amour était plus ardent que la lune
Qui consume, l’été, les lacs et les forêts.

Voilà le torse étroit de la danseuse Grecque


Et j’embrassais son corps avec plus de ferveur
Qu’un dévot à genoux baise un anneau d’évêque,
Un jour de Pâques plein de cloches et de fleurs.

Voilà les cheveux courts de la Visitandine


Qui gardait un parfum de sacrilège aux seins
Et voilà Belcolor avec ses jambes fines
Et Gaétane aux yeux couleur de ciel marin.
Voilà celle qui, nue, en d’épaisses fourrures
Se jetait brusquement sur le lit de brocart.
Ses dents de louve étaient avides de morsures,
Ses reins battaient comme un bélier sur un rempart.

Voilà la plus petite et son visage d’aube,


La pudique, dont je n’ai pas baisé les doigts.
C’est lorsque mon poignard ouvrit en deux sa robe
Que j’ai su quel trésor était perdu pour moi.

Comme je vous aimais, ô mes épouses mortes!


Vous pouviez demander mes champs et mes châteaux,
Mais vous avez voulu le secret de la porte
Cramoisie, et la mort est venue aussitôt...

Vous ne saviez donc pas, ô femmes bien-aimées,


Qu’il n’est pas de palais qui ne cache en sa tour
La chambre en velours noir, terrible et parfumée
Où dort le souvenir du sang et de l’amour.

Plus jamais! Vos bijoux jettent des éclairs fauves...


Derrière la fenêtre on entend les corbeaux...
Les ongles sont bistrés, la chair est bleue et mauve...
J’effeuille le bouquet et j’éteins le flambeau...
LA MAISON DES ADOLESCENTS

L’adolescent franchit le mur du beau jardin


Car il ne savait pas qu’après les tamarins,
Les seringas géants, les camphriers blanchâtres,
Se dressait la maison secrète aux murs de plâtre
Où vivaient les enfants aux corps luxurieux,
La mulâtresse aux mains savantes, aux longs yeux,
La svelte au tambourin et la toute petite
A tête rase, aux seins couleur de chrysolithe.
Il frappa doucement sur la porte en or peint.
Un rire clair, de l’ombre fraîche, des coussins,
Des fruits dans des plateaux, des vins dans des carafes...
Sur un voile en lin bleu luit l’émail d’une agrafe.
Une bouche agace sa nuque en le mordant,
Un autre prend sa bouche et caresse ses dents.
La musique du tambourin, les lourdes roses...
La robe de lin bleu, la robe de lin rose
Tombent. Ses doigts crispés sur le frêle front ras
L’adolescent se pâme et fléchit dans les bras
Bronzés, puis dort et la nuit vient et la nuit passe...
Et d’autres nuits encor viennent. Les plantes grasses
Éclatent au soleil et les grands camphriers
Murmurent, les lézards courent sur les graviers...
Toujours l’adolescent étreint, renaît, se pâme
Dans le plaisir de chair, sur la chaleur des femmes.
Et lorsque se dressant au milieu des coussins
Il entend par-delà les murs, sur le chemin
Sa mère qui, de loin, l’appelle et se lamente,
Il serre avec ardeur les trois adolescentes
Il répand à leurs pieds une âme sans regrets.
Il est dans la maison dont on ne sort jamais.
L’INCUBE ET LA VIERGE

Elle ôte en s’étirant sa robe et, virginale,


Près du miroir, défait la gerbe des cheveux.
La coupe de cristal sonne de son opale...
Le sein n’est pas formé, le cou n’est pas nerveux.

Toute la pureté de la chair et de l’âme


Emplit comme un parfum ce décor rose et bleu.
L’air est léger et doux, le feu jette des flammes...
Elle sent son corps chaud sous son peignoir soyeux

L’intime solitude et le tiède silence


De leur sécurité lui grisent le cerveau.
Elle a le sentiment pourtant d’une présence.
Elle ferme la porte et croise les rideaux.

Et comme elle pénètre entre les draps où l’ambre


Monte subtilement des oreillers brodés,
Il semble qu’un soupir tressaille dans la chambre...
Elle écoute, le front sur le bras accoudé.

Ce n’est rien. Elle éteint la lumière. Une haleine


Étrange, de la nuque aux talons la parcourt,
Et voilà que soudain pour elle l’ombre est pleine
De souvenirs pervers et d’images d’amour.

Elle veut les chasser, mais toutes les racines


Des duvets de sa peau frémissent en brûlant.
Les draps bougent. Près d’elle une longue main fine
A pris son torse et la caresse en la frôlant.

Elle allume. Elle a peur. Mais non, le lit est vide.


Elle ferme les yeux pour dormir, mais alors
Elle sent sur sa bouche une autre bouche avide,
Qui la savoure ainsi qu’un fruit à pulpe d’or.
Et c’est un corps humain qui près d’elle se glisse,
Dont la forme et l’odeur lui font bondir le sang.
Elle se laisse aller à ce nouveau délice
De croire être blottie entre des bras absents...

Mais ce n’est pas un songe, ô Seigneur! Une forme


Est bien là qui la tient fortement par le cou,
Une puissance d’homme, une carrure énorme
Qui la meurtrit avec les os de ses genoux.

Elle ne pourrait plus s’échapper et du reste


Ne le veut plus. Le lit est splendide et fatal.
Elle flambe à présent des flammes de l’inceste
Contre le compagnon fantastique et brutal.

La tendre jeune fille au beau visage pâle


N’est plus qu’un être de plaisir entre des bras,
Une bête agrippée au lit, une cavale
Qu’un chevaucheur sans nom fait courir sur les draps.

«O bien-aimé nocturne et terrible, demeure!


Par ton large baiser mon visage est mangé.
Enivrons-nous encor du délire des heures
Au creux de ce torrent qu’est le lit ravagé...»

Mais l’aurore apparaît aux carreaux. Elle éclaire


Le linge déchiré, l’empreinte, la sueur,
La trace des doigts durs, le bistre des paupières
Et la chambre déserte... Il fait froid. Le feu meurt...

«Quel est l’être, ô Seigneur, sans âme et sans figure,


Qui dans mon lit de vierge a, cette nuit, couché?
Pourquoi suis-je à présent si souillée et si pure?
Je connais le plaisir infini du péché...»
LE PAGE AUX GANTS MAUVES

On a crucifié le page au maillot noir


Qui chanta les couplets défendus, au boudoir,
Le beau page insolent aux cheveux bleus et fauves.
On a planté les clous à travers ses gants mauves,
Et remis sur son front la toque au plumet long.
Il entend ricaner son ami, le félon
Qui l’a dénoncé, puis c’est l’abbé qui l’exhorte.
Le maître satisfait passe avec son escorte,
Oublieux qu’une fois le souper finissant
Il conduisit, l’ayant grisé, l’adolescent
Vers sa chambre secrète en velours de Byzance.
Des femmes, à la nuit, viennent mettre en silence
Des fleurs devant sa croix, car elles ont aimé
Le jeune homme et dormi dans ses bras parfumés.
Lui, des lèvres tout bas demande quelque chose.
Mais nulle ne comprend. Elles posent des roses
Et s’en vont... Celle dont il refusa l’amour
La petite comtesse espiègle aux cheveux courts,
Vint la dernière avec l’aiguière et le peigne.
Et c’est elle qui nettoya le front qui saigne,
Mit la toque plus droite, arrangea le pourpoint
Et quand il fut coiffé, maquillé avec soin
Et que le sang des gants fut couvert par les bagues,
Elle perça son cœur d’une petite dague.
LA TRISTESSE DU NAIN CHINOIS

Pour faire un boniment près des manèges ivres,


Dans le faste de pains d’épice et d’oripeaux
Des quatorze juillet vibrant du chant des cuivres,
Un soir, il débarqua chez les Occidentaux.

Les trafiquants comptaient sur son épaule torse,


Sur sa face huileuse avec des yeux bénins,
Sur sa natte tressée et cette grande force
De comique que cache une forme de nain.

Non, l’Europe est trop laide et son ciel est malade!


A votre appel, ce soir, il demeurera sourd,
O lutteur dont le muscle éclate à la parade,
O Gugusse assassin, dompteur de phoque et d’ours.

Car dans le bruit que fait la foire et sa folie,


Il entend retomber les rames des sampans,
Sous les palétuviers il compte les coolies,
Dans les sentiers de joncs où dorment les serpents.

Il voit les abris bas pour les âmes en peine,


Le village en bambous auprès du champ de riz.
Le petit temple bleu qui domine la plaine
Et l’ombre tamisée où le Bouddha sourit.

«Je ne danserai pas dans le bruit des cymbales,


Devant ce peuple abject grotesquement vêtu,
Pour la race innommable avec des faces pâles,
Des yeux striés de sang et des mentons velus.

«Vous êtes plus affreux que les dragons de bronze


Que Confucius place au seuil de son enfer,
Que les esprits du mal que conjurent les bonzes,
Avec des bâtonnets en aréquier vert.
«Vous êtes plus mauvais que les Tatars antiques
Qui vinrent ravager l’empire du Milieu
Car ils se contentaient pour trophée, à leur pique,
D’une tête dont ils avaient ôté les yeux.

«Mais vous, dès que vos fils sont sortis de leur mère,
Ils apprennent la mort et ses arts raffinés.
Vous les faites pourrir dans le charnier des guerres,
Vivants, vous les sciez et vous les dépecez.

«Je préfère, voyant vos mufles, vos babines,


Où sont inscrits vos sanguinaires appétits
Les peuplades sans front de l’île Sakhaline,
Les déterreurs de morts du désert de Gobi.

«Votre soleil a l’air d’une lune et me navre.


Vous marchez en mangeant vos enfants dans vos bras
Et c’est ce qui vous fait cette odeur de cadavre
Qui sort de vos habits comme un nuage gras...»

—Le fouet tourbillonna sur le nain impassible.


Les mirlitons criaient et claquaient les drapeaux.
Dans sa face immobile ainsi qu’en une cible
La patronne planta son épingle à chapeau.

Et le lutteur vint lui donner la bastonnade,


Et la foire chanta son plaisir, ses amours...
Toujours le nain voyait parmi le bleu des jades
Un Bouddha souriant au fond du demi-jour...
LE PARC MASQUÉ

Вам также может понравиться